web-dev-qa-db-ja.com

Visual Studio:プロジェクトが最新の場合でもC ++プロジェクトのビルド後イベントを実行する

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

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

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

45
user200783

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

53
Tarydon

この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>
3
diegoapereza

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

0
Igor Zevaka