50

Visual Studio(2008)では、プロジェクトが最新であっても、C ++プロジェクトのビルド後イベントを強制的に実行することはできますか?

具体的には、COMインプロセスサーバーDLLをビルドするプロジェクトがあります。プロジェクトには、「zippy32.exe $(TargetPath)」を実行するビルド後のステップがあります。これは「再構築」では正常に実行されますが、プロジェクトのソースに変更が加えられた場合にのみ「構築」で実行されます。

変更を加えずに「ビルド」を実行すると、Visual Studioはプロジェクトが最新であり、何も実行しないことを報告するだけです。ビルド後のイベントは実行されません。この状況でイベントを強制的に実行する方法はありますか?DLL自体は最新ですが、登録情報が最新でない可能性があるため、これが必要です。

4

4 に答える 4

61

[カスタムビルドステップ]プロパティページを使用して、実行するバッチファイルを設定できます。これは、[出力]設定で指定されたファイルが見つからないか、古い場合に実行されます。そこに存在しないファイルを指定するだけで、カスタムビルドステップが常に実行されます。出力ファイルが見つからないため、プロジェクトが最新であっても実行されます。

于 2009-12-21T08:48:05.083 に答える
8

このDisableFastUpToDateCheckを使用してください

例を参照してください。

<PropertyGroup>
    <PostBuildEvent>IF  EXIST C:\Projects\Copy_Files_To_Instance.ps1 ( powershell -file C:\Projects\Copy_Files_To_Instance.ps1)</PostBuildEvent>
    <DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>

于 2018-04-03T20:58:04.673 に答える
0

登録情報は、主に.rgsファイルの内容によって決まります。そのファイルが変更されると、プロジェクトがビルドされます。プロジェクトを汚さずにCOM登録を他にどのように変更できるかわかりません。あなたの特定の状況についての詳細を提供してもよろしいですか?

于 2009-12-21T01:13:06.383 に答える
0

Visual Studio 2017(おそらく他のバージョンも)では、C#プロジェクト(OPの実際の質問ごとにC ++プロジェクトをチェックしていません)には、「ビルド後のイベントを実行する:」というオプションがあり、1つのオプションは「常に」です。 、プロジェクトが最新であることを単に報告するのではなく、何も変更されていない場合でもビルド後を実行します。

ここに画像の説明を入力してください

于 2019-05-03T14:02:59.993 に答える