如何打包及安装dll文件安装到GAC
(2010-10-25 09:14:51)
<script></script>标签:
|
分类:
c#学习
|
<!-- 正文开始 -->
vs2010打包步骤:
1. 新建setup project项目。打开vs2010,选择 Fill>>New>>Project…,弹出New Project窗口,左边选择Installed Templates>>Other Project Types>>Setup and Deployment,右边选择Setup Project。Project命名为Setup,点击OK按钮。
2. 添加文件。在Application Folder里面添加应用程序的可执行文件和相应的类库(.exe .dll)。
3. 创建快捷方式。右键点击.exe文件,选择Create Shortcut to…,把快捷键剪切到User’s Desktop和User’s Programs Menu,这样在桌面和开始菜单就会创建快捷方式。
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。如图
如果在.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
分享到:
相关推荐
该安装包实现了基本的安装和卸载功能 同时具有在安装过程中实现DLL的注册 在卸载时候卸载DLL功能
本工具用于把Dll注册到GAC,也可以把已注册到GAC的Dll卸载; 还在为Sharepoint开发烦闷吗?本工具用于Sharepoint快速更新Dll,大大节省您的调试时间
VS2003中设计强名称程序集并制作安装入GAC的MSI
Visual Studio GAC 到全局 工具
@sn.exe -Vr commonmodule.dll @gacutil.exe /IF commonmodule.dll @sn.exe -Vr remoteobject.dll @gacutil.exe /IF remoteobject.dll @FOR %%f IN (*.dll) DO sn.exe -Vr %%f @FOR %%f IN (*.dll) DO gacutil.exe /...
GAC Verifier(检测GAC程序集是否被篡改)
图像分割,基于GAC的图像分割,使用matlab编程
用MATLAB实现GAC模型来分割图像,里面有注释 可以看懂可以运行
附件为 集 C# 操作IIS(IIS6.0 和IIS 7.0 以下版本) C# 安装和反安装 Windows 服务 C# 注册GAC 反注册GAC 等源代码 附件为用于 IS调用的一个应用程序,所以窗口是透明.且代码都在 Form_Load 中执行,也有传入参数.
它作为程序集 (可安装在 gac 中)来实现,因此可以很容易地并入其他项目(任何.NET 语言)。#ziplib 的创建者就这么说:“我已经移植zip 库到 C# 因为我需要 gzip/zip 压缩,我不想使用 libzip.dll 或这样的事情。我想...
用MATLAB实现GAC模型来分割图像,里面有注释 可以看懂可以运行
Gac
使用GAC算法解决futoshiki问题, 在该代码中,利用了结构体的形式,将比较大小的进行了简单化,以及利用copy的方法使得DSF时状态很容易回到原状态,并附加了学习的ppt,ppt中也有伪码,该代码的适用性比较高,在知道...
开发时发现CrystalReport的11.0.5这个版本的dll很难弄到,从某台机器的GAC中提取出来的,有11.0.5和11.5.X版本
sqlserver 2008版本用到的STrace.dll和SqlTDiagM。注意,需要拷贝到C:\Windows\assembly下。
本程序是使用水平集方法实现的GAC模型,迎风方案
本程序采用迎风方案实现推广GAC模型的水平集方法.
可提供给matlab与visual stdio进行引用调用。 2.20.1.0 2.22.1.0
本程序采用迎风方案实现推广GAC模型的水平集方法: ut=|▽u|div(g▽u/|▽u|)+cg|▽u|将调用到以下子函数:(1)gauss(): 平滑图像以计算边缘函数g (2)createimage(): 将当前零水平集(演化曲线)叠加在原图上显示...
经典的GAC 活动轮廓模型,matlab代码,比较全。但是效率有点慢。