私のVSソリューションの約12のプロジェクトには同じ行があります:
<PostBuildEvent>
<Command>signtool sign /f ..\Certificates\MyCert.pfx /fd sha256 "$(TargetPath)"</Command>
</PostBuildEvent>
msbuildを使用しているため、共通のターゲットを持ち、各プロジェクトがこれを参照する方法があることは知っていますが、これの正確な構文を考え出すのに苦労しています.
新しいファイルを作成します。CommonDefinitions.targets と呼びましょう。次の内容で行います。
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<PropertyGroup>
<PostBuildEvent>signtool sign /f ..\Certificates\MyCert.pfx /fd sha256 "$(TargetPath)"</PostBuildEvent>
</PropertyGroup>
</Project>
次に、PostBuildEvent をオーバーライドする各ファイルに、次の行を追加します。
<Import Project="$(SolutionDir)\CommonDefinitions.targets" />
これをカスタムのビルド後のステップとマージする場合は、PostBuildEventDependsOn をオーバーライドして、ビルド後のステップに追加のターゲットを追加します。例えば:
<PropertyGroup>
<PostBuildEventDependsOn>$(PostBuildEventDependsOn);MyAdditionalPostBuildTarget</PostBuildEventDependsOn>
</PropertyGroup>
<Target Name="MyAdditionalPostBuildTarget">
<!-- add any actions here -->
</Target>
と