程序集的定义:
1.程序集是一个或多个托管模块,以及一些资源文件的逻辑组合。
2.程序集是组件复用,以及实施安全策略和版本策略的最小单位。
3.程序集是包含一个或者多个类型定义文件和资源文件的集合。在程序集包含的所有文件中,有一个文件用于保存清单。(清单是元数据部分中一组数据表的集合,其中包含了程序集中一部分文件的名称,描述了程序集的版本,语言文化,发布者,共有导出类型,以及组成该程序集的所有文件)。
程序集的物理表现:
1.可执行程序集:存在一个用于表示EXE的文件,这个文件是程序集的入口点。
2.提供功能的程序集:存在一个用于表示DLL的文件,这个文件是程序集的入口点。
程序集和托管模块的关系:
1.可以使用 csc /t:module type1.cs
csc /t:module type2.cs
这样就可以生成两个托管模块: type1.netmodule type2.netmodule
2.使用命令将模块集成到程序集中:
csc /out:xxx.dll /t:library /addmodule: type1.netmodule type2.netmodule xxx.cs
这样就有了程序集xxx.dll: 它由xxx.dll type1.netmodule type2.netmodule 组成。xxx.dll代表了这组程序集。xxx.dll也可以是xxx.exe。也可以使用al来创建:
Al /out:xxx.dll /t:library type1.netmodule type2.netmodule.
3.卫星程序集:
3.1创建资源文件:MyResource.cn.Resx 或者MyResource.cn.txt
3.2使用命令resgen MyResource.cn.resx MyResource.cn.resources 编译资源
3.3 al.exe /culture:cn /out:"cn/HelloWorld.Resources.dll" /embed:"MyResources.cn.resources" /template:"HelloWorld.exe"
3.4在主程序集HelloWorld中如何访问卫星程序集:
System.Resources.ResourceManager resources =
new System.Resources.ResourceManager("HelloWorld.Resources.MyResources",
System.Reflection.Assembly.GetExecutingAssembly());
// Print out the "HelloWorld" resource string
Console.WriteLine(resources.GetString("HelloWorld"));
// Get the new culture name
Console.Write(resources.GetString("NextCulture"));
3.5部署主程序集和卫星程序集
│ HelloWorld.exe
├─ko-kr
│ HelloWorld.resources.dll
├─it
│ HelloWorld.resources.dll
├─fr
│ HelloWorld.resources.dll
├─es
│ HelloWorld.resources.dll
├─en
│ HelloWorld.resources.dll
├─en-us
│ HelloWorld.resources.dll
└─de
HelloWorld.resources.dll
通过AL工具来改变一个程序集的各种属性:
可以参见AL的帮助
通过AssemblyInfo.cs文件来改变一个程序集的属性:
这个文件中最重要的几个特性是:
1、AssemblyVersion: 格式: Major Version ---- Minor Version ------ Build version ------ Revision
2、[assembly: AssemblyCulture("")]
3、[assembly: AssemblyDelaySign(false)]
4、[assembly: AssemblyKeyFile("")]
5、[assembly: AssemblyKeyName("")]
这几个各个程序集属性的探讨
将程序集组成各种应用程序,进行程序集的部署:
不考虑应用程序的类型,可以将程序集的部署分为私有部署和全局部署。
私有部署:
1.本地应用程序的部署结构
AppDir
|---- App.exe
|---- App.exe.config
|-----AuxFilesDir
|------ xxx.dll
|------ yyy.dll
在App.exe.config中可以配置影响CLR寻找程序集路径的选项。
2.Asp.net应用程序和XML Web服务应用程序
对于asp.net Web窗口和XMLWeb服务应用程序,配置文件必须位于Web应用程序的虚拟根目录下,并且名称总是Web.config 。另外子目录也可以包含它们自己的Web.config文件,并继承上一目录的配置设置。
3. 对于包含客户方空件、以微软的IE浏览器为宿主的程序集。(没有见过)
相关推荐
这个程序集,为了实现使用代码来生成PDF,在项目中例如我们需要将合同或者订单用Pdf的形式打印出来,在C#中这个程序集相当有用。
一般地,用.NET编写的程序集在发布前,通常需要对代码进行混淆和强签名,下面简要介绍一下程序集的混淆和强签名的步骤及在实际开发中的实施。 首先,需要创建一个公钥/私钥对。密钥如果有密码保护,则生成pfx文件,...
讲解C#动态加载程序集并实例化程序集中的对象。有示例代码。思路清晰易懂。
.net c#动态创建程序集、类、属性、方法等 参考文章 http://hi.baidu.com/live36524/blog/item/5cbba22b4716cb87033bf6b3.html
C# 程序集 类型加载 反射 C# 程序集 类型加载 反射 QQ:292258449
c# 调用 WinApi 程序集 源码 c# 调用 WinApi 程序集 源码 c# 调用 WinApi 程序集 源码
包含C#基本编程操作的经典案例,适合初学者学习C#使用
c# 获取程序集版本号,自动增加“内部版本号”和“修订号
一个C#实例集,几个精典的C#的例子.大家可以学习参考
C#案例开发程序集C#案例开发程序集C#案例开发程序集C#案例开发程序集C#案例开发程序集
如何获取程序集版本信息实例C#.net源代码编写
我总结的一些小的应用程序( 程序集 ) 。请大家浏览观看。
动态反射调用通用类,可直接运行,调用public static IList<T> GetExtendInstance()可返回当前文件夹下所有实现T接口或继承T类型的所有类
c#编程源文件,供初学者参考。
C#2.0序列化和反序列化 程序集反射技术 C#2.0序列化和反序列化 程序集反射技术
CreateClass_net c#动态创建程序集、类、属性、方法等 京华志&精华志出品 分享资源 C# ASP.NET SQL DBA 源码
c#程序合集
NPOI DLL程序集 本版本解决了 NPOI.OOXML.dll和NPOI.dll 版本冲突问题,测试可用。 NPOI 是 POI 项目的 .NET 版本。 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。
C#程序设计教学基本要求 1、课程的性质和内容 本课程是计算机科学与技术专业的一门重要的专业基础课程。 它既可以为其 它专业课程奠定程序设计的基础,又可以作为其它专业课程的程序设计工具。 2、课程的任务和要求 ...
我做的c#程序集实现的中文助记码源码,希望可以给需要的同胞一点认识!