zoukankan      html  css  js  c++  java
  • GAC(转)

    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都不适合放进去(当然也有解决方案不过麻烦)

  • 相关阅读:
    memcached(三)--参数
    memcached(二)--安装
    memcached(一)--前言
    如何高性能的给UIImageView加个圆角?(不准说layer.cornerRadius!)
    ios打包ipa的四种实用方法
    怎么调试EXC_BAD_ACCESS错误
    iOS应用性能调优的25个建议和技巧
    3D Touch
    segment
    低版本Xcode 出现could not find developer disk image问题
  • 原文地址:https://www.cnblogs.com/lingxzg/p/953363.html
Copyright © 2011-2022 走看看