私は現在、VS2010のビルド前イベントとポストビルドで、AssemblyInfo.csファイルにSVNバージョン番号を取得しようとしているので、ビルドDLLにコンパイルしています。Pre-Buildイベントによって変更された最新バージョンのAssemblyInfo.csを取得するにはどうすればよいですか?
事前ビルドでは、AssemblyInfo.csファイルを更新するスクリプトを実行し、ポストビルドステップでスクリプトを実行してゼロにリセットします。
最新のバージョンを残しておけば、SVNはこれを変更と見なしてコミットします。これはSVNのバージョン番号を更新して別の変更をもたらします。これはちょっと再帰的になります。
私が実行した問題は、ビルドがビルド前の手順で更新されたものではなく、元のバージョンのファイルを選択することです。したがって
:
I手動でファイルのバージョン番号を設定(試験として)場合に:
[assembly:AssemblyVersion("1.0.0.123")]
そして事前構築アップデートは全
[assembly: AssemblyVersion("1.0.0.456")]
その後、ポストビルドによって更新されます。
[assembly: AssemblyVersion("1.0.0.0")]
ビルドするDLLを見ると、バージョンは1.0.0.123です。
ビルドが始まる前にビルド前のステップが完了していることを確認しましたが、 notepad.exeなどに)VS2010はまだ更新されたファイルを取得できません。
メモ帳の実行中にnotepad.exeをpre-buildコマンドに入力するだけで、この動作を確認できます。 AssemblyInfo.csファイルを手作業で変更してください。メモ帳を閉じるまでビルドが開始されませんが、メモ帳を閉じると元のバージョンのファイルでビルドされます。
ここでは、プレビルドの仕組みに何か不足していますか?ビルドを強制的に更新して更新ファイルを使用する方法はありますか?
感謝:)