Visual Studio(2008)では、プロジェクトが最新の場合でも、C++プロジェクトのビルド後イベントを強制的に実行できますか?
具体的には、COMインプロセスサーバーDLLをビルドするプロジェクトがあります。プロジェクトには、「regsvr32.exe $(TargetPath)」を実行するビルド後のステップがあります。これは「リビルド」では問題なく実行されますが、プロジェクトのソースに変更が加えられた場合にのみ「ビルド」で実行されます。
変更を加えずに「ビルド」を行うと、Visual Studioはプロジェクトが最新で何もしないことを報告するだけです。ビルド後のイベントは実行されません。この状況でイベントを強制的に実行する方法はありますか? DLL=自体は最新ですが、登録情報が最新でない可能性があるため、これは必要です。
カスタムビルドステッププロパティページを使用して、実行するバッチファイルを設定できます。 Outputs設定で指定されたファイルが見つからない場合、または古い場合に実行されます。そこで、存在しないファイルを指定するだけで、カスタムビルドステップが常に実行されます。出力ファイルが見つからないため、プロジェクトが最新の場合でも実行されます。
この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>
登録情報は、主に.rgs
ファイルの内容によって決まります。そのファイルを変更すると、プロジェクトがビルドされます。他にCOM登録がプロジェクトを汚すことなくどのように変更できるかわかりません。特定の状況の詳細を教えていただけませんか?