Re[3]: API и слоёные архитектуры
От: Vladek Россия Github
Дата: 14.09.16 02:05
Оценка: -1
Здравствуйте, Arsen.Shnurkov, Вы писали:

V>> Все вменяемые библиотеки так устроены.


AS>Да что вы говорите! Покажите мне это на примере Roslyn:

AS>https://github.com/dotnet/roslyn-project-system/issues/462

В чём вообще вопрос? Как ковыряться в xml? Ну способов 10 разных точно есть. По ссылке какая-то тривиальная ерунда, XSLT задействуй, если файлы переписывать хочется. А в рамках идеологии MSBuild вообще решается через переменные (<PropertyGroup/>) и условные выражения в таргетах — подставляешь в нужных местах переменные и меняешь их значения в зависимости от каких-то условий.

Вот пример из CSPROJ — генерация разных подключений к бд в зависимости от выбранной конфигурации (переменная Configuration):
  <UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v$(VisualStudioVersion)\Web\Microsoft.Web.Publishing.Tasks.dll" />
  <Target Name="AfterBuild" Condition="Exists('ConnectionStrings.$(Configuration).config')">
    <!--Generate transformed config in the project directory, because Web apps pick files from there-->
    <TransformXml Source="ConnectionStrings.config" Destination="ConnectionStrings.config" Transform="ConnectionStrings.$(Configuration).config" />
  </Target>


Ты так же можешь сделать файл PROJ и трансформировать CSPROJ по шаблону. https://msdn.microsoft.com/en-us/library/dd465326(v=vs.110).aspx

А архитектура при чём?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.