创建程序集
您可以使用Visual Studio .NET集成开发环境(简称IDE,如 Visual Studio 2008)或 .NET Framework SDK 提供的编译器和工具来创建单文件程序集或多文件程序集。Visual Studio .NET集成开发环境本身不支持创建多文件程序集,如果需要创建多文件程序集,必须求助于命令行工具。
现在使用IDE创建一个单文件程序集。
打开VS2008,新建一个“类库”的项目,项目名称为“SingleFileAssembly”,将该项目中默认提供的Class.cs文件删除,再添加一个新类,文件名是SingleFileAssembly.cs,打开SingleFileAssembly.cs文件,将命名空间更改为VS2008.Chapter11.SingleFileAssembly,在SingleFileAssembly类中添加如下代码:
namespace VS2008.Chapter11.SingleFileAssembly
{
public class SingleFileAssembly
{
public void ShowMeMessage()
{
Console.WriteLine("我是一个在类SingleFileAssembly的方法");
}
}
}
为了让这个类在外部能够被使用,需要将该类的权限设置为public。编译,就在debug目录生成一个SingleFileAssembly.dll的程序集。为了测试该程序集,在解决方案中添加一个控制台应用程序,项目名称为“TestApp”,在“解决方案管理器”中TestApp项目上点击鼠标右键,将该项目设置为启动项目,然后在该项目中添加引用,将SingleFileAssembly.dll添加进来。
为了使用SingleFileAssembly.dll程序集中的类SingleFileAssembly,必须在TestApp项目中使用命名空间VS2008.Chapter11.SingleFileAssembly,完整的源代码如下:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using VS2008.Chapter11.SingleFileAssembly; //手动添加
namespace TestApp
{
class Program
{
static void Main(string[] args)
{
SingleFileAssembly sfa = new SingleFileAssembly();
sfa.ShowMeMessage();
Console.ReadKey();
}
}
}
运行程序,结果如图11-6所示:
图11-6
程序集是一个可以控制版本信息,区域文化信息的最小单位,这些信息都可以添加在该项目的AssemblyInfo.cs文件中。下面是一个默认生成的AssemblyInfo.cs文件的显示。
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的常规信息通过下列属性集
// 控制。更改这些属性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("SingleFileAssembly")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("SingleFileAssembly")]
[assembly: AssemblyCopyright("Copyright © 2008")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 属性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("2c87b29d-32c1-4b69-9ad2-3732ac74c0f5")]
// 程序集的版本信息由下面四个值组成:
//
// 主版本
// 次版本
// 内部版本号
// 修订号
//
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,
// 方法是按如下所示使用“*”:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
对其中的一部分作解释说明。
程序集版本信息:
版本号由四个部分组成:主版本号、次版本号、生成版本号、修订版本号
例:2.5.719.2 主版本号与次版本号组成“面向公众”的版本部分,第三个版本号719表示程序集的生成版本,最后一个版本号2表示对生成版本的修订版本。
一个程序集的三个相关版本号:
1、AssemblyFileVersion:该版本号存储在Win32版本资源中,它仅仅是一个辅助性的信息。
2、AssemblyInformationalVersionAttribute:该版本号也存储在Win32版本资源中,仅辅助性作用。
3、AssemblyVersion:该版本号存储在AssemblyDef清单元数据表中。这个版本号非常重要,它用来惟一地标识一个程序集。
语言文化:
可以用System.Reflection.AssemblyCultureAttribute定制特性来指定语言文化。示例如下:
//将程序集的语言文化设置为瑞士德语
[assembly :AssemblyCulture (“de-CH”)]
对上面的一些内容随便填入一些信息
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的常规信息通过下列属性集
// 控制。更改这些属性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("SingleFileAssembly")]
[assembly: AssemblyDescription("这是一个用来测试的程序集")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("演示工作室")]
[assembly: AssemblyProduct("程序集测试")]
[assembly: AssemblyCopyright("Copyright © 2008")]
[assembly: AssemblyTrademark("测试程序集")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 使此程序集中的类型
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,
// 则将该类型上的 ComVisible 属性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("2c87b29d-32c1-4b69-9ad2-3732ac74c0f5")]
// 程序集的版本信息由下面四个值组成:
//
//