の下にアセンブリ情報を参照して、著者はnetmodule
のではなく、参照されるアセンブリを意味します。
アセンブリが1つのファイルのみで構成されている場合、FileDef
テーブルは空になります。 複数のモジュールで構成されるアセンブリを作成しようとすると、マニフェストにハッシュが表示されます。これを試してみてください:
(1)(3つのモジュール用)3つのソースファイルを作成します。
// module1.cs
namespace MultiModuleAssembly
{
public class Class1 { }
}
// module2.cs
namespace MultiModuleAssembly
{
public class Class2 { }
}
// main.cs
namespace MultiModuleAssembly
{
public class Program
{
public static void Main(string[] args)
{
Class1 c1 = new Class1();
Class2 c2 = new Class2();
}
}
}
を(2).netmodule
に各ファイルをコンパイルします。
csc /t:module module1.cs
csc /t:module module2.cs
csc /t:module main.cs /addmodule:module1.netmodule /addmodule:module2.netmodule
(3)メインモジュールのサイン
al main.netmodule /keyfile:key.snk /out:main-signed.dll
(4)ildasm
でmain-signed.dll
開き、ダブル:キーとクリックしてM A N I F E S T
ノード:
// Somewhere in the middle of the listing
.file main.netmodule
.hash = (89 84 FB F2 BB 72 AA 13 44 76 A5 49 8F 13 99 3E // .....r..Dv.I...>
54 30 24 84) // T0$.