0

リンクされた AssemblyInfo.cs ファイルを使用して、すべてのクラス ライブラリの AssemblyFileVersion を設定しています。

[assembly: AssemblyFileVersion("6.60.3.4")]

他のすべてには、ローカル/デフォルトの AssemblyInfo.cs ファイルを使用しています。

//example of AssemblyVersion set in project AssemblyInfo.cs    
[assembly: AssemblyVersion("6.60.3.1")]

私の結果は、AssemblyFileVersion と AssemblyVersion の両方が AssemblyFileVersion 値に設定されているということです。

共有 AssemblyFileVersion を維持し、プロジェクト アセンブリごとに個別の AssemblyVersion を維持するにはどうすればよいですか?

編集

AssemblyFileVersion を使用して、プロジェクト内のすべての dll アセンブリのリリース バージョンを追跡できる/すべきだという印象を受けました。考えられるのは、exe と dll がすべて同じ AssemblyFileVersion を持つようにすることです。AssemblyVersion は、その特定の dll に変更が加えられた場合にのみインクリメントされます。このロジックは私には理にかなっています。大規模なプロジェクトを処理するためのより論理的なアプローチがあるかどうかアドバイスしてください

4

3 に答える 3

1

次の投稿、AssemblyVersion、AssemblyFileVersion、AssemblyInformationalVersionの違いは何ですか?、反対のことをすることをお勧めします。

この回答は、ニーズに合わせて調整できる実装を提供します。

于 2013-01-14T04:00:57.370 に答える
0

私の知る限り、これに対する簡単な解決策はありません。最も簡単な解決策は、最初にクラス ライブラリを個別にビルドし、他のビルドをそれに依存させることだと思います。一般に、AssemblyInfo ファイルの値を操作しようとしても無駄です。

TeamCity のようなシステムを模倣できます。すべてのソースを取得し、実際にビルドする前に、Web UI で提供されたバージョン番号を使用して AssemblyInfo ファイルを編集します。

于 2013-01-11T20:26:09.250 に答える
-1

私の質問は正しく述べられていましたが、少し誤解されたのではないかと思います。Windows のファイル プロパティ ダイアログを使用して、ProductVersion と FileVersion が正しく設定されていることを確認していました。

以下を共有 AssemblyInfo.cs ファイルに追加すると、期待どおりに動作し始めました。

[assembly: AssemblyVersion("6.60.0.0")]    
[assembly: AssemblyInformationalVersion("6.60.0.0")]

これだけではなく AssemblyVersion が更新される理由についての考え

[assembly: AssemblyVersion("6.60.0.0")]
于 2013-01-15T17:26:43.123 に答える