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

时间:2011-02-25 03:10:15

标签: .net .net-4.0 gac gacutil

关于GAC,请快速提问 我创建了一个程序集Awesome.DLL。如果它已签名,则安装到GAC中:

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

我的问题:

C:\Windows\Assembly或任何子文件夹中找不到Awesome.DLL。虽然在C:\WINDOWS\Microsoft.NET\assembly\GAC_MSIL\我猜是因为这个,但是我无法从Add Reference>中看到Awesome.DLL。 .NET。

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

3 个答案:

答案 0 :(得分:18)

您的程序集已安装到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“Add Reference - > .Net”中找到的程序集列表。对话框不仅仅是在GAC中找到的程序集列表(请注意,该列表中的大多数条目也未在GAC中找到)。

有关如何将程序集添加到此列表的信息,请参阅以下文章(特别是“在”添加引用“对话框中显示程序集”部分):

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

答案 1 :(得分:0)

我创建了一个完全免费的工具,可以帮助您实现目标。 Muse VSReferences将允许您从Add GAC Reference菜单项中向项目添加Global Assembly Cache引用。

希望这有帮助。

答案 2 :(得分:0)

检查vs2010项目菜单下的项目属性:      我已经看到这个项目是“.NET Framework 4 Client Profile”,程序集是“.NET 4 Fraemwork”。 方案: 将项目更改为“.NET framework 4”配置文件