3

MSBuildでビルドするときに、アセンブリバージョンにカスタム形式を使用する方法はありますか?

たとえば、「0.16.10r2.10717」のようなバージョンを使用しようとしましたが、次のエラーが発生しました。

error emitting 'system.reflection.assemblyversionattribute' -- The version specified '0.16.10r2.10717' is invalid.

私はウェブを検索しましたが、誰もこれの解決策を求めていないようです。出来ますか?

プロジェクトの構築には、Microsoft VisualStudio2010とFinalBuilder7を使用します。

4

1 に答える 1

15

AssemblyVersionAssemblyFileVersionはどちらも、ピリオドで区切られた最大4つの整数で構成されている必要があり、それぞれが65534(UInt16.MaxValue-1)以下です。次のいずれかが有効です(C#構文)。

[assembly: AssemblyVersion("1.2.3.4")]

// Let the compiler generate the build and/or revision numbers
[assembly: AssemblyVersion("1.2.3.*")]
[assembly: AssemblyVersion("1.2.*")]

文字列をバージョンとして受け入れる別の属性AssemblyInformationalVersionがあります。より複雑な文字列を使用する場合(特に、DVCSからのコミットIDを含める場合)に使用できます。

// Use complex version number
[assembly: AssemblyInformationalVersion("0.16.10r2.10717")]

// Include Git commit ID
[assembly: AssemblyInformationalVersion("1.2b1-g39d1c0f")]

簡単に言うと、これらの属性の違いは次のとおりです。

  • AssemblyVersion:これはアセンブリのCLRバージョンとして使用されます。アセンブリに厳密な名前がある場合、これは検証されるバージョンです。

  • AssemblyFileVersion:これはWin32ファイルバージョンリソースであり、Windowsエクスプローラーのアセンブリのプロパティに表示されます。

  • AssemblyInformationalVersion:これは実行時にApplication.ProductVersionプロパティを介してアクセスできます。パスでも使用されApplication.UserAppDataDirectoryます。

于 2012-07-15T07:02:07.290 に答える