通過所有組成大會文件的大會信息,筆者指netmodule
S,不是引用的程序集。
如果程序集僅包含自己的單個文件,則FileDef
表將爲空。 如果您嘗試構建由多個模塊組成的程序集,您將能夠在清單中看到散列。嘗試:
(1)創建三個源文件(對於三個模塊):
// 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$.