首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

怎么打包及安装dll文件安装到GAC

2012-08-25 
如何打包及安装dll文件安装到GAC?转载2.?????? 添加文件。在Application Folder里面添加应用程序的可执行文

如何打包及安装dll文件安装到GAC

?

转载

2.?????? 添加文件。在Application Folder里面添加应用程序的可执行文件和相应的类库(.exe .dll)。

怎么打包及安装dll文件安装到GAC

?

?

3.?????? 创建快捷方式。右键点击.exe文件,选择Create Shortcut to…,把快捷键剪切到User’s Desktop和User’s Programs Menu,这样在桌面和开始菜单就会创建快捷方式。

?

?怎么打包及安装dll文件安装到GAC

4.?????? 选择安装目录。默认安装目录是"c:\programm file\你的用户名、安装解决方案名称",选择Application Folder>>Properties Window,修改Application Folder的defaultlocation属性,可以自己制定安装目录。

?

?

?

5.?????? 卸载。把文件"c:\windows\system32\msiexec.exe"添加到Application Folder,重命名为UnInstall.exe,选择UnInstall.exe>>Create Shortcut to UnInstall.exe,把Shortcut to UnInstall.exe剪切到User’s Programs Menu。

?

?

?

6.?????? 生成。Build>>Build Solution,找到”.. Setup\Setup\Debug\Setup.msi”,这就是打包好的安装文件。

?

把dll文件安装到GAC:

1.?????? 生成一个密钥对。新建文件夹c:\mykeys,用来存放密钥。打开vs command prompt,输入sn命令“sn -k ?‘c:\ mykeys\gackey.snk’”,按Enter,在c:\mykeys会发现gackey.snk。

?

2.?????? 把密钥与dll关联。打开要打包的项目,选择生成dll的类库>>Properties>>AssemblyInfo.cs,在AssemblyInfo.cs中添加属性AssemblyKeyFile 为[assembly:AssemblyKeyFile("c:\\mykeys\\gackey.snk")]。

?

3.?????? 把dll文件安装到GAC。打开setup project项目,选择Fill>>System on Target Machine>>Add Special Folder>>Global Assembly Cache Folder,把拥有密钥对的dll文件添加到Global Assembly Cache Folder。

?

4.?????? 生成。Build>>Build Solution。

?

5.?????? 验证。安装好Setup.msi后,可以在” C:\Windows\Microsoft.NET\assembly\GAC_MSIL”找到安装好的dll文件。

?

在项目中引用安装好的dll:

新建项目test,在Solution Explorer中选择References>>Add Reference…,弹出Add Reference对话框,在.NET下可以找到安装好的dll文件Test_Lib。如图

怎么打包及安装dll文件安装到GAC

?

如果在.NET找不到Test_Lib,那就需要注册Test_Lib.dll。步骤如下

?

1.?????? 打开注册表。在运行的命令行输入regedit,按Enter。

?

2.?????? 导航到HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\.NETFramework\

?

3.?????? 选择AssemblyFolders>>New>>Key,命名为MyAssembly

4.?????? 双击MyAssembly默认的值,输入Test_Lib.dll的全路径” C:\Windows\Microsoft.NET\assembly\GAC_MSIL”。

?

5.?????? 关闭注册表,重新打开项目test,再选择References>>Add Reference…时,在.NET下就可以找到Test_Lib了。

?

什么是GAC:

1.?????? GAC全称Global Assembly Cache,即全局程序集缓存。GAC存放在系统目录”%winroot%\assembly”下面,你不能通过窗口如”C:\windows\assembly\yourAssembly.dll”来直接获取yourAssembly.dll,必须在dos下输入” C:\windows\assembly\GAC_MSIL\”才能获取yourAssembly.dll。

?

2.?????? GAC的作用是可以存放一些有很多程序都要用到的公共Assembly,例如System.Data、System.Windows.Forms等等。这样,很多程序就可以从GAC里面取得Assembly,而不需要吧所以用到的Assembly都拷贝到应用程序的执行目录下面。举例而言,如果没有GAC,那么势必每个WinForm程序的目录下就都有从C:\windows\Microsoft.NET\Framework\v1.0.3705下面拷贝一份System.Windows.Forms.dll,这样显然不如都从GAC里面取用方便,也有利于Assembly的升级和版本控制。

?

http://tech.ddvip.com/2009-06/1244621593123155_2.html

http://www.cnblogs.com/jhxk/articles/1612433.html

http://soaspx.com/dotnet/csharp/csharp_20100701_4956.html

http://tech.it168.com/KnowledgeBase/Articles/1/8/8/1883b14dc241af8af78e2aa52c33064b.htm

?

?

?

热点排行