3

現在、AssemblyVersionAttributeコンパイル済みアセンブリのアセンブリ バージョンを指定するために使用しています。ただし、AssemblyVersionAttribute指定できるのは 16bit リビジョン[1]のみです。MajorRevisionゼロより大きい値を指定するにはどうすればよいですか?

4

1 に答える 1

1

クラスのプロパティとプロパティは、それぞれasとプロパティから計算されますMajorRevisionMinorRevisionReflectorでmscorlibを開いてみてください)。VersionRevisionRevision >> 16Revision & 0xffff

アセンブリのバージョン管理では、16ビットを超える長さのリビジョン番号はサポートされていません。このデータは、アセンブリバイナリの16ビットセクションに格納されます。つまり、アセンブリバージョンは、Versionクラスの機能のサブセットのみをサポートします。これは16進エディタで確認できます。バージョンをたとえば1.0.0.65534に設定すると、コンパイルされたDLLに16進バイトが含まれます0100 0000 0000 feff。次の2バイトに値を挿入してからアセンブリを検査しても、バージョン番号は16ビットを超えて増加しません。

于 2012-05-18T14:42:34.050 に答える