2011-06-30 11 views
0

私は現在、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ファイルを手作業で変更してください。メモ帳を閉じるまでビルドが開始されませんが、メモ帳を閉じると元のバージョンのファイルでビルドされます。

ここでは、プレビルドの仕組みに何か不足していますか?ビルドを強制的に更新して更新ファイルを使用する方法はありますか?

感謝:)

答えて

0

を任意の手がかりは、私は、コンピュータの再起動がそれを振るために十分であったかもしれないと思い
...コンピュータを残すことは数日のためにオフになり、それに戻ってくることは、この問題を修正することが判明します緩んでいる。戻って来る:それをもう一度やり直してみましたか? sigh

関連する問題