如何使用GAC的程序集?

时间:2014-11-23 08:29:13

标签: c# .net-assembly gac

我想在dll项目中使用C:\Windows\Microsoft.NET\assembly\GAC_32\MyFolder\中的C#
我尝试添加引用(References-> Add Reference-> Browse)并且看起来很好但是在运行时程序中,程序被AccessViolationException压碎了。
我不确定引用是否是问题,所以我决定调查它,我在post中找到了一个答案,说你不能引用GAC中的一个程序集这条路。我没有找到的是我应该怎么做 当我删除对dll的引用时,程序当然不是编译。

2 个答案:

答案 0 :(得分:1)

在使用GAC程序集之前,您需要了解一些事项。

1)GAC中的汇编必须是strong-named

2)您无法在那里复制文件,here如何正确地将程序集部署到GAC。

3)A strong-named assembly can only use types from other strong-named assemblies.

4)Here'如何在编译时引用强名称程序集(使用编译器选项)和运行时以及here如何引用Visual Studio的GAC程序集。另请阅读Hans Passant在this帖子中的答案。

答案 1 :(得分:0)

'Referencing DLL from GAC in Visual Studio'可能重复。请特别查看this answer,了解为什么从GAC添加引用是不好的做法。但是,您仍然可以使用计算机上的完整路径执行此操作。请考虑以下情形:

  1. 您的参考是第三方dll
  2. 您依赖于您正在部署的计算机已经注册了
  3. 的事实

    决议:

    1. 将您所依赖的第三方程序集复制到某个选定的文件夹中。
    2. 仅将这些引用用于编译目的。你没有发货这些物品。
    3. 安装后,将从该计算机上的GAC解析这些引用。如果没有,则需要将这些程序集安装到GAC。
    4. 为SharePoint构建自定义应用程序的人(例如)使用此方案。