8

問題なくコンパイルできる .il ファイルがあります。私はそれに厳密な名前を付けることができるので、問題はありません。しかし、期待どおりに属性を介してファイルバージョンを設定することはできません。ilasm を使用するときにアセンブリの FileVersion を設定するにはどうすればよいですか?

往復すると、読み取り不可能なバイナリデータのみを含む .res ファイルが常に取得されます。この res ファイルの中身は何ですか?編集できますか?

コードが機能しない

.assembly myAssembly 
{
  .custom instance void [mscorlib]System.Reflection.AssemblyFileVersionAttribute::.ctor(string) = { string('1.2.3.4') }
4

1 に答える 1

13

この問題は、.resファイルを使用して解決できます。ildasmとilasmで往復するだけでは不十分です。ILファイルは.resファイルを参照しません。手動でilasm呼び出しに追加する必要がありました。resファイルのデータには、PEヘッダーに書き込まれる情報が含まれているようです。これは私にとっては問題ありません。

必要な最後のコマンドラインは

ilasm test.il /dll /res:test.res

resファイルの内容はまだ正確にはわかりませんが、手動で作成した他のアセンブリのメタデータ情報と交換し、必要に応じて逆コンパイルして元のアセンブリのメタデータを置き換えることができます。

そのようなことをしている人はあまりいないようです。

于 2012-02-08T13:50:39.343 に答える