2011-10-25 8 views
1

私が作業しているクラスライブラリのAssemblyFileVersion属性と異なるAssemblyVersionを取得する際に問題が発生しました。AssemblyFileVersion属性が無視されています

私は空の(Class1.csから離れた)クラスライブラリを作成して、どこかの設定であるかどうかを確認しようとしましたが、同じ動作が発生します。

AssemblyVersion属性が無視されているようです。ここで

Windows Explorer Screen Grab

は設定があります... ...

[assembly: AssemblyVersion("0.1")] 
[assembly: AssemblyFileVersion("1.1.0.9")] 

私のAssemblyInfo.csファイルから該当ビットであり、ここで物事がWindowsエクスプローラで見てどのようですこれを制御するどこか?

EDIT: 私は差がある一つのファイルを見つけたので、それは2つの異なるフィールドに同じ値を示すWindowsエクスプローラではありません、それはDLLを/コンパイラから生成されている方法とは何かです私のPC上で確認したリンカー...

enter image description here

+0

製品バージョン!=アセンブリバージョンです。それは私に正しく働いているように見えます... –

+0

@Marc、なぜAssemblyVersion属性はWindowsエクスプローラにマップされますか? –

+0

これは表示に使用されていますが、確かにwin-7に表示することはできません。答えは単純に:エクスプローラ*には何も影響しませんが、依然としてアセンブリ定義の重要な部分です。 –

答えて

5

ここで重要な問題は、Windowsは管理対象プログラムの属性について何も知らないということです。それはアンマネージドファイルバージョンのリソースを読み取ります。/win32resコンパイルオプションを使用してC#アセンブリに埋め込まれているもの。 AssemblyInfo.csで指定したアセンブリ属性値を使用してリソースを作成すると、そのオプションを使用しない場合、コンパイラによって既定で自動的に生成されます。

ただし、アンマネージファイルバージョンのリソースには、[AssemblyVersion]のようなものを指定するための標準フィールドはありません。 [AssemblyFileVersion]のみ。コンパイラは実際にそれを発行し、バージョンリソースは拡張可能です。しかし、Windows XPはこれらのカスタムフィールドを表示する最後のバージョンでした。 Visual StudioでFile + Open + Fileを使用してアセンブリを開くと、アンマネージリソースが表示されます。

はい、ラメと迷惑です。MSのWindowsグループは管理されたコードに対応したくありません。

1

、それは実際には[OK]を動作します。

エクスプローラ:

enter image description here

プロパティ:

enter image description here

その他異なっている: enter image description here

私の窓explorer.exeのバージョンが、その場合は6.1.7601.17567です助けてください。

[assembly: AssemblyVersion("2.2.2.2")] 
[assembly: AssemblyFileVersion("3.3.3.3")] 

でのVisual StudioでWindows 7 SP1

テストこれは、私自身は結果を与えた: Visual Studioがここに間違って何かをやっているようenter image description here そうに見えます。

3

右は、あなたがAssemblyInfo.csを編集し、値がエクスプローラで「製品バージョン」に表示されていることを一番下

[assembly: AssemblyInformationalVersion("4.4.4.4")] 

で次のように追加する必要が

:-)答えを見つけました。 AssemblyInformationalVersionはオプションです。指定されていない場合、AssemblyVersionが使用されます。

このトピックの詳細は、here

+0

に戻ってきているかもしれませんが、私はその属性を見つけましたが、AssemblyVersionの内容を調べようとしていたので試していませんでした。ありがとう。 –

+0

私はちょうど異なる 'AssemblyVersion'と 'AssemblyFileVersion'エントリーを持っていて、** AssemblyFileVersion' **はエクスプローラーの製品とファイルバージョンに使われました。 ( 'AssemblyInformationalVersion'で' Product version'を修正することはできますが、それはあなたが持っているものと少し違っています。 'AssemblyInformationalVersion'も' AssemblyFileVersion'もなく** ** AssemblyVersion'が使われていないと思います。) – ruffin

関連する問題