当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 把程序集安装到全局程序集缓存中的步骤

ASP.NET
asp.net实现C#代码加亮显示
如何显示在线人数和所在位置
ASP.net生成文字图片
ASP.NET提供文件下载函数
一个简单的ASP.NET Forms 身份认证
在ASP.NET中实现多文件上传
asp.net 2.0中使用sitemapDATAsource做页面导航
通过ASP.net程序创建域帐户故障
为ASP.NET封装的SQL数据库访问类
在ASP.NET中跟踪和恢复大文件下载
SQL存储过程在.NET数据库中的应用
对“学号”、“身份证”的数字分析
把.NET程序部署到没有安装.NET Framwork的机器上
ASP.NET中同时支持简体和繁体中文
几十个ASP.NET性能优化的常用方法
.NET环境下五种邮件发送解决方案
.NET开发中正则表达式中BUG一例
.NET反射、委托技术与设计模式
.net中Windows窗体间的数据交互
ADO.NET访问Oracle 9i存储过程(上)

ASP.NET 中的 把程序集安装到全局程序集缓存中的步骤


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-13   浏览: 143 ::
收藏到网摘: n/a

最近两天在看网络编程中制作简单的http服务器,其中用到把程序集安装到全局程序集缓存中,自己尝试了一下,记录一下:(首先,对共享程序集安装计算机管理员权限) 步骤:
1.先创建类库项目,完成编码;
2.对类库项目生成强命名,生成密钥文件;(该名称是加密的哈希密钥或签名。这种强名称可确保正确的组件版本控制。这有助于防止具有相同名称的组件相互冲突或被消耗应用程序误用)
使用.net Framework 开发包中bin目录下的SN工具生成加密密钥对,例如:在D盘建立文件夹:GACkey,然后在命令行中执行:sn -k "D:\GACkey\GACkey.snk" ,则在D:\GACkey\GACkey.snk就会生成密钥文件;
3.关联类库文件和密钥文件,并编译生成dll文件(有两种方法);
a.
在 Visual Studio .NET 解决方案资源管理器中双击 AssemblyInfo.cs 文件。此文件具有一个程序集属性列表,默认情况下,在 Visual Studio .NET 中创建项目时将包括这些属性。在代码中修改“AssemblyKeyFile”程序集属性,如下所示:
[assembly:AssemblyKeyFile("密钥文件的路径("D:\GACkey\GACkey.snk")]
通过按 Ctrl+Shift+B 来编译项目。
b.
1.在 项目 菜单上, 单击 类库项目 属性 。
2. 在 签名 选项卡, 单击以选中 为程序集签名 复选框。
3. 在 选择强名称密钥文件 , 单击 新建 < > 。
4. 在 创建强名称密钥 对话框中, 单击以选中 我密钥文件用密码保护 复选框。
5. 在 密钥文件名称 框中, 键入 密钥文件名称.
6. 在 输入密码 框中, 键入与要使用密码。
7. 在 确认密码 框中, 键入同一密码, 并单击 确定 。
注意 我们建议您创建密钥文件时始终使用一个密码。 以 .pfx 文件格式始终创建新密钥文件受密码保护。
8. 编译项目, 按 CTRL + SHIFT + B。
注意 无额外代码需要全局程序集缓存中安装 .dll 文件。

4.安装Dll或程序集到GAC中(有两种方式);
a.通过SDK中的Gacutil工具安装
执行命令行:gacutil -I "dll文件的路径"
b.通过找到dll文件直接把此文件拖到c:\[SystemRoot]\Assembly 文件夹即可;

5.验证程序集安装在全局程序集缓存
可使用 GlobalAssemblyCache 工具来验证程序集安装在全局程序集缓存。步骤操作:
1. 单击 开始 , 单击 运行 , 类型 cmd然后单击 确定 。
2. 改为安装 .NET 框架 SDK, 目录当前工作目录使用下列命令之一: • 如果已安装 .NETFramework 2.0 SDK, 键入以下命令, 然后按 ENTER 键:
cd "%ProgramFiles%\Microsoft Visual Studio 8\SDK\v2.0\\Bin"
• 如果安装 .NET 框架 1.1 SDK, 键入以下命令, 然后按 ENTER 键:
cd "%ProgramFiles%\Microsoft.NET\SDK\v1.1\Bin"
3. 使用 GlobalAssemblyCache 工具来显示 刚才创建的程序集, 安装信息。 要这样做, 在命令提示符处键入以下命令, 然后按 ENTER 键:
gacutil -l “程序集名称”