У меня есть консольное приложение, которое использует строку подключения к базе данных, которая определена в app.config.У меня есть несколько преобразований для изменения строки в зависимости от конфигурации сборки.
У меня также есть несколько событий после сборки, которые копируют app.config в выходные данные других проектов. Проблема в том, что события после сборки запускаются первыми, и я копирую нетрансформированный файл app.config. Позже запускается задача преобразования и применяется преобразование (так что я знаю, что оно работает).Я использую с Visual Studio 2010 и .NET 4.
В настоящее время действия [1], [ 3 ], [ 2 ], мне нужно изменить порядоких в [1], [2], [3]
1) Build
2) Выполнить преобразование
3) Выполнить событие после сборки
Вот мое преобразование из.csproj
<UsingTask TaskName="TransformXml" AssemblyFile="$(MSBuildExtensionsPath)\Microsoft\VisualStudio\v10.0\Web\Microsoft.Web.Publishing.Tasks.dll" />
<Target Name="Transformation" Condition="exists('app.$(Configuration).config')" >
<TransformXml Source="app.config" Destination="$(IntermediateOutputPath)$(TargetFileName).config" Transform="app.$(Configuration).config" />
<ItemGroup>
<AppConfigWithTargetPath Remove="app.config" />
<AppConfigWithTargetPath Include="$(IntermediateOutputPath)$(TargetFileName).config">
<TargetPath>$(TargetFileName).config</TargetPath>
</AppConfigWithTargetPath>
</ItemGroup>
</Target>
А это мои события после сборки
<PropertyGroup>
<RunPostBuildEvent>OnBuildSuccess</RunPostBuildEvent>
</PropertyGroup>
<PropertyGroup>
<PostBuildEvent>copy $(ProjectDir)app.config $(OutDir)\TH.Presentation.LocalAgent\$(TargetFileName).config
copy $(ProjectDir)app.config $(OutDir)\TH.Services\$(TargetFileName).config</PostBuildEvent>
</PropertyGroup>
Любая помощь будет принята с благодарностью