app.config で定義されているデータベース接続文字列を使用するコンソール アプリケーションがあります。ビルド構成に応じて文字列を変更するための変換がいくつかあります。
app.config を他のプロジェクトの出力にコピーするビルド後のイベントもいくつかあります。問題は、ビルド後のイベントが最初に発生し、変換されていない app.config をコピーすることです。後で変換タスクが開始され、変換が適用されます (そのため、機能することがわかります)。Visual Studio 2010 と .NET 4 で使用しています。
現在、アクションは [1]、[ 3 ]、[ 2 ] です。[1]、[2]、[3] に並べ替える必要があります。
1) ビルド
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>
どんな助けでも大歓迎です