私のカスタムMSBuildタスクは、実際のビルドの前後にいくつかのステップを実行します。ビルド後の手順は、常にいくつかのファイルをクリーンアップするために実行することが不可欠です。最初のものは常に実行されるが、2番目は唯一成功したビルド後に実行失敗したビルド後にMSBuildターゲットを実行する
<Target Name="NrtPatchAssemblyInfo" BeforeTargets="BeforeBuild">
と
<Target Name="NrtRestoreAssemblyInfo" AfterTargets="AfterBuild">
:私は現在、定義された2つの目標を持っています。たとえば、コードファイルの構文エラーのためにビルドがコンパイラによって失敗した場合、2番目のターゲットは実行されません。
これを変更して、常に2番目のタスクを実行するにはどうすればよいですか?
MSBuildが通常使用するターゲット名のリストが見つかりませんでした。これらの名前は他のソースからコピーされたものです。
1つでも障害が発生した場合、これ以上のターゲットはありませんか?どのように私はその後、クリーンアップ作業やエラーの後に行う必要がある何かを行うことができますか? Visual Studioインフラストラクチャのコピーは私にとってはまだ選択肢ではありません。 – ygoe
また、クリーンアップ作業の必要性を取り除くこともできます。アセンブリ情報のパッチを適用するファイルのコピーを作成し、それを中間ディレクトリなどにコピーし、そのコピーをビルドで使用します。コピーへの変更が元に戻らないかどうかは関係ありません。 – stijn
私はついにこのトピックに戻りました。パッチを適用せずにファイルを復元するようにツールを変更しましたが、変更したファイルをobj \に保存し、元のファイル(削除)の代わりにその(インクルード)を使用します。 – ygoe