11

1つのcppファイルで、__DATE__マクロを使用してコンパイル日を取得します。

そのファイルの最後のコンパイルの日付を教えてくれます。ただし、ファイルはあまり頻繁に変更されないため、ほとんどの場合、日付は古く、場合によっては数か月前になります。

私が実際に欲しいのは、プロジェクトの最後のビルドの日付です。

プロジェクトのコンパイルごとにVS2010にその単一のcppファイルを再構築させる設定はありますか?ファイルの変更に関係なく?

これまで私が見つけた唯一の方法は、ビルドの前にスクリプトによってファイルを変更するか、作成されたobjファイルを削除することです。可能であれば、VS内のソリューションをお勧めします。

4

3 に答える 3

13

あなたはおそらくそのファイルを追加することができPre-Build Stepますかtouch(このスレッドを参照)?

を追加するにはPre-Build Step、を開き、Project PropertiesConfiguration Properties > Build Events > Pre-Build Event実行するコマンドラインを追加しますCommand Line

Amitdからの提案に従って、touchPowerShellを使用してファイルを作成することもできるようです。説明については、こちらを参照してください。

以下のコメントでAdrianMcCarthyが示唆しているように.obj、ソース管理が使用されている状況でファイルを削除することをお勧めします.cpp read-only。Visual Studioによって公開された「マクロ」を使用すると、それらを簡単に削除できます。

del $(TargetDir)sourcefile.obj

Cheersandhthから引用。-これを達成する別の方法としてのAlf

nmake (bundled with Visual Studio and the SDK) option /t does a touch, it was once the conventional way to do this for Windows programmers.
于 2012-11-21T16:20:39.500 に答える
1

ファイルの日付スタンプをタッチするだけで、次のビルド前の手順を追加できます。これ+,,copyコマンドの特別なフラグであり、ファイルのタイムスタンプを更新するように指示します。

copy file.cpp +,,
于 2018-03-13T14:33:08.200 に答える
1

Adrian McCarthyが提案したように、プロジェクトをビルドするたびにオブジェクトファイルを削除するだけです。

したがって、delコマンドを呼び出すビルド前イベントを作成します。Microsoftによると、このマクロを使用$(IntDir)して、オブジェクトファイルが保存されているディレクトリを参照できます($(TargetDir)マクロは使用しないでください)。

コマンドの戻りコードに問題があったため(エラーMSB3073)、常に。で終了するようにコマンドを変更しました0

del $(IntDir)datefile.obj & exit 0

このビルドイベントは、プロジェクト構成の[構成のプロパティ]/[ビルドイベント]で作成します。

于 2018-11-05T10:42:14.543 に答える