Tag: global assembly cache

无论复制本地设置如何,VS 2015都会复制到项目引用的GAC引用

我为这种行为提出了一个连接问题 。 无论复制本地设置如何, VS 2015复制到项目引用的GAC引用。 VS 2010不会使用相同的解决方案和项目,尊重复制本地属性。 到目前为止,我发现的唯一解决方法是在项目A中添加对Microsoft.Web.Services3.dll的直接引用,并将其设置为复制local = false。 重现步骤: Project A |__ Project B (Project Reference, copy local = true) |__Microsoft.Web.Services3.dll (GAC, copy local = false) 实际: Microsoft.Web.Services3.dll正被复制到Project A的输出目录中。 预期: Microsoft.Web.Services3.dll未被复制到项目A的输出目录。 知道为什么会这样吗? MSDN文档明确指出不应将GAC依赖关系复制到输出,而VS 2010尊重该输出。

如何以编程方式确定是否在GAC中安装了.NET程序集?

如果程序集在本地计算机上的GAC(全局程序集缓存)中注册,那么以编程方式检查的最简单方法是什么? 是否有一些易于使用的.NET API,我可以给它一个程序集DLL或Assembly对象本身的位置,以检查它是否存在于本地机器上的GAC中? 在我的情况下,我正在检查的程序集已经加载到程序检查的当前AppDomain中,因此我不确定调用Assembly.ReflectionOnlyLoad并且捕获exception将像我在其他post中看到的那样工作,加上看来有点hacky。 理想情况下,我想避免调用像gacutil.exe这样的外部可执行文件来检查。