Gac网站部署

原创 2007年09月12日 14:31:00

Gac就是C:/WINDOWS/assembly文件夹,中文叫全局程序集缓存,把dll放到这个文件夹里,bin下面就不用放dll了,目的是为了程序集共享。

如何把asp.net网站部署到Gac里面

首先在你Visual Studio的安装目录里找到sn.exe文件,放到cmd里执行
sn.exe -k C:/testKey.snk
这样就会在你C盘的目录下生成testKey.snk密钥文件
然后
VS2003
在网站项目的AssemblyInfo.cs里面的[assembly: AssemblyKeyFile("")]做类似如下配置
[assembly: AssemblyKeyFile(@"C:/testKey.snk
")]
注意这里写绝对路径最好,相对路径很难写
生成网站
这时网站的dll就是个强命名程序集,
打开程序---管理工具---.net framework1.1(或2.0)配置
我的电脑,程序集缓存,右键添加,把刚生成好的dll添加进去,无错的话就添加成功了。

这时你可以把自己bin目录下的dll删了,但这时网页还打不开,对webconfig做如下修改
<compilation
         defaultLanguage="c#"
         debug="true"
    >
  <assemblies>
   <add assembly="youDllname, Version=1.0.2811.20076, Culture=neutral, PublicKeyToken=c52d31a7559027ce"/> 
    </assemblies>
   </compilation>

至于assembly后面的dll全名怎么写,你可以用反编译工具Reflector.exe去查你的dll,也可以在.net framework1.1(或2.0)配置里面找到你的dll查属性得到。
配好后网页就应该可以打开了,如果打不开,重启下iis

VS2005
要麻烦一点,你生成好snk文件后,第一步,当你确定好网站程序不改了后,点网站发布,在发布里面用固定命名和单页程序集,和对预编译程序用强命名,下面有一个可以选择snk文件的按纽,把snk文件选进去,发布网站,
然后再用上面的方法把bin目录里面的dll加到Gac里面,这时可以把bin目录里面的dll删了。然后配制webconfig如下
<configuration>节点下
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<qualifyAssembly partialName="CE.EIP.CRMBusinessEntities" fullName="CE.EIP.CRMBusinessEntities, Version=1.0.0.0, Culture=neutral, PublicKeyToken=C75F352AFF88DAD1"/>
</assemblyBinding>
</runtime>
这时网站应该可以运行。qualifyAssembly 在2005里面是通知运行时去Gac找dll的方法
基本上是这样,但你第一次很可能操作成功不了,所以要注意如下问题
webconfig永远是在你部署时修改,你要是在开发时修改就有错
当你都配制好后,要重启下iis,你更新dll的时候最好也重启下iis,为什么呢?
因为运行时是先去找C:/WINDOWS/Microsoft.NET/Framework/v1.1.4322/Temporary ASP.NET Files
下面的一个叫root 文件里面的dll,如果找到了,就不会去Gac里面找了,重启IIS的目的就是为了把里面的文件删除
并不是所有dll都可以放到Gac里面的,比如ajax.dll系列,因为这个dll会生成xml文档,dll在GAC里面,那xml会生成在哪里呢?所以凡是要生成xml文档的dll都不适合放进去(当然也有解决方案不过麻烦)

拷贝出你GAC里面的DLL文件

转:http://blog.sina.com.cn/s/blog_573be9bc0100ht65.html 早上和同事探讨如何从GAC中拷贝已经部署的DLL文件的时候,除了以前熟悉的命令行拷贝方法...
  • jackljf
  • jackljf
  • 2013年12月13日 09:59
  • 717

gac算法解决数独问题

gac算法:Generalized Arc Consistency不同于FC(forward checking)算法和回溯 直接看图更容易理解 实现将一个有空数独解出来 #include ...
  • cat_foursi
  • cat_foursi
  • 2017年05月09日 11:05
  • 641

灵活运用VS外部工具:Copy assembly to GAC

摘要 Visual Studio是一个超级强大的开发集成环境,在日常开发过程中我们可能只发挥了它30%的功力。除了日常的代码编写,编译,发布,还有众多的功能帮助我们提升开发效率,外部工具就是其中...
  • xuhaibobishen
  • xuhaibobishen
  • 2015年12月14日 10:36
  • 274

将dll部署到全局程序集缓存(GAC)中

转载:转自 http://blog.csdn.net/feihu_guest/article/details/7633821 针对一些类库项目或用户控件项目(一般来说,这类项目最后编译生成的是一个或多...
  • jason_dct
  • jason_dct
  • 2016年06月23日 09:49
  • 1617

全局程序集缓存GAC是什么概念

 是的,GAC中的所有的Assembly都会存放在系统目录"%winroot%\assembly下面。放在系统目录下的好处之一是可以让系统管理员通过用户权限来控制Assembly的访问。   ...
  • dqccsdn
  • dqccsdn
  • 2014年11月16日 12:46
  • 478

网站部署发布到互联网等整套流程

阅读对象:不会发布网站到互联网的人,不懂得域名和空间或者不会用的人,一直想装逼让别人看却没能得逞的人 如果你是上面几种人,那么这篇博客绝对适合你,废话少说进入正题。 1.网站发布  参考链接:h...
  • shuai7boy
  • shuai7boy
  • 2016年11月17日 17:23
  • 8497

使用GitHub部署项目并将网站免费挂到github上

4步搞定github上传项目
  • qq_29721419
  • qq_29721419
  • 2016年12月10日 14:15
  • 1960

Tomcat部署JSP网站(部署web应用?)

首先看下我的JSP网站所在的目录截图(D:\web\qqonlinemgrdao): ----------------------------------------------------...
  • friendan
  • friendan
  • 2013年06月18日 18:06
  • 4626

使用GitHub部署网站

在上一篇博客中介绍了使用新浪云部署网站,这篇博客将介绍另一种部署网站的方式,使用GitHub部署网站。 两种部署网站的方式比较 部署网站的方式 是否收费 操作步骤 难易程度 ...
  • u010105970
  • u010105970
  • 2016年12月26日 23:59
  • 1854

部署强命名程序集到GAC

上文私有部署应用程序升级策略中我们制作了SomeMethodLib.dll文件并通过私有部署方式应用,那么如何部署到GAC并使用呢。...
  • chifuqi
  • chifuqi
  • 2014年01月17日 11:54
  • 1286
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Gac网站部署
举报原因:
原因补充:

(最多只允许输入30个字)