为什么安装到GAC时,我的程序集在“添加引用> .Net”中不可见?

问题描述:

只是有一个关于GAC的快速问题
我创建了一个程序集Awesome.DLL。没有签署,然后安装到GAC:为什么安装到GAC时,我的程序集在“添加引用> .Net”中不可见?

C:\MyApps\Awesome\Awesome\Awesome\bin\Release>sn -k Awesome.snk 
Microsoft (R) .NET Framework Strong Name Utility Version 4.0.30319.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

Key pair written to Awesome.snk 

C:\MyApps\Awesome\Awesome\Awesome\bin\Release>gacutil /i Awesome.dll 
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

Assembly successfully added to the cache 

C:\MyApps\Awesome\Awesome\Awesome\bin\Release>gacutil /l Awesome.dll 
Microsoft (R) .NET Global Assembly Cache Utility. Version 4.0.30319.1 
Copyright (c) Microsoft Corporation. All rights reserved. 

The Global Assembly Cache contains the following assemblies: 

Number of items = 0 

我的问题:

Awesome.DLL不C:\Windows\Assembly或任何子文件的发现。它被发现,虽然在C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL\我猜是因为这个,我无法从添加引用> .Net中看到Awesome.DLL。

为什么不安装到C:\Windows\Assembly\?我怎样才能指向那个位置呢?

您的程序集安装到C:\WINDOWS\Microsoft.NET\assembly\而不是C:\Windows\Assembly\,因为它是一个.Net 4.0程序集,.NET Framework 4.0版在该位置有一个新的单独的GAC。位于C:\Windows\Assembly\的GAC仅包含.Net 2.0 - 3.5程序集。 (见.NET 4.0 has a new GAC, why?)。

在Visual Studios中找到的程序集列表“添加引用 - > .Net”。对话框不仅仅是GAC中找到的程序集列表(请注意,该列表中的大部分条目都未在GAC中找到)。

有关如何将组件添加到这个列表,请参阅下面的文章信息(特别是“要在添加引用对话框中显示的组件”一节):

请注意用于此的注册表项对于不同版本的Visual Studio是不同的。

+0

如何启用powershell以在新的GAC中查找.net 4程序集? – 2012-01-15 05:35:29

我创建了一个完全免费的工具,可以帮助您实现目标。 Muse VSReferences将允许您从“添加GAC参考”菜单项中将全局程序集缓存引用添加到项目。

希望这会有所帮助。

+0

你有计划正式支持VS2012和VS2013吗?支持新版本VS(即2012和2013)的My *非官方*升级可以在这里下载(http://ge.tt/2COX9iS/v/1?c)。 – 2014-06-25 03:42:45

+0

有没有计划为VS2015添加这个? – slayernoah 2016-04-28 18:51:13

检查您的项目属性在VS2010项目菜单: 我见过这是项目是“.NET Framework 4客户端配置文件”和程序集是“.NET 4 Fraemwork”。 解决方案: 将项目更改为“.NET Framework 4”配置文件

+0

你可以请你的答案格式化,再解释一下吗? – 2015-09-30 11:12:14