频道栏目
读书频道 > web开发 > .NET > .NET安全揭秘
2.1.5 创建多文件程序集
2012-10-24 15:13:37     我来说两句
收藏   我要投稿

本文所属图书 > .NET安全揭秘

全书共分为五个部分。第一部分:.NET安全基础,透彻讲解了.NET体系结构、程序集与反射、应用程序域和CLR寄宿等核心技术,这部分内容是.NET架构的核心,同时也是理解.NET底层安全机制的基础;第二部分:.NET平台安...  立即去当当网订购

创建一个多模块程序集可划分为两种情况,一是由同一语言编译器创建的不同模块的合并,二是由不同语言编译器创建的模块的合并。下面分别讨论这两种情况。

首先创建一个Module1.cs文件,如代码清单2-3所示。

代码清单2-3Module1.cs源码

public class Module1
{
public Module1()
{
}
public int Add(int m,int n)
{
return m + n;
}
}

使用C#编译器csc.exe编译输出文件Module1.netmodule(如图2-10所示)。


 

然后创建一个MainModule.cs文件,如代码清单2-4所示。

代码清单2-4MainModule.cs源码

public class MainModule
{
public int Mul(int m,int n)
{
return m *n;
}
}

接下来把这段代码编译成dll类型的程序集文件,把Module1.netmodule模块添加到该程序集中。如图2-11所示。

图2-11中的命令行开关/addmodule:Module1.netmodule把模块Module1.netmodule添加到程序集MainModule.dll。下面通过ILDasm来查看相关信息,如图2-12所示。



 

如果某个程序想引用MainModule.dll文件,则必须保证Module1.netmodule文件的存在和访问权限,否则编译器会报错,如图2-13所示。


 

对于不同编译器生成的模块,如使用的编译器又不支持类似C#编译器中类似于/addmodule的开关,则只能选用程序集链接器(AL.exe)来合并各模块。下面创建含有3个托管模块的程序集,如图2-14所示。


 

首先使用语言编译器生成模块1为M1.netmodule,模块2为M2.netmodule,然后使用AL.exe 生成包含程序集清单的Main.dll文件,命令如下:

al /out:Main.dll /t:M1.netmodule M2.netmodule

该程序集包含了3个文件,AL.exe不能将多个文件合并成一个文件。

您对本文章有什么意见或着疑问吗?请到论坛讨论您的关注和建议是我们前行的参考和动力  
上一篇:2.1.4 共享程序集
下一篇:2.2 使用反射操作程序集
相关文章
图文推荐
排行
热门
最新书评
特别推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站