关于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\
?我怎样才能指向该位置呢?
答案 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”配置文件