私はapp.configで定義されているデータベース接続文字列を使用するコンソールアプリケーションを持っています。ビルド構成に応じて文字列を変更するための変換がいくつかあります。PostBuildEventsの前にapp.config変換タスクを最初に実行するにはどうすればよいですか?
また、app.configを他のプロジェクト出力にコピーするビルド後イベントがあります。 問題はポストビルドイベントが最初に発生し、untransformed app.configがコピーされます。後で変換タスクが始まり、変換が適用されます(私はそれが動作することを知っています)。私はアクションが[1]、[]、[]、I [2]、[1]にそれらを並べ替える必要がある今のVisual Studio 2010および.NET 4
を使用し、 [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>
あるすべてのヘルプは大幅にそれらを並べ替える方法がない場合は、あなたがそれらを組み合わせることができ