13

有一个关于 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 > .Net 中看到 Awesome.DLL。

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

4

3 回答 3

20

您的程序集安装到C:\WINDOWS\Microsoft.NET\assembly\而不是C:\Windows\Assembly\因为它是一个 .Net 4.0 程序集,并且 .Net 框架版本 4.0 在该位置有一个新的单独 GAC。位于的 GACC:\Windows\Assembly\仅包含 .Net 2.0 - 3.5 程序集。(请参阅.NET 4.0 有一个新的 GAC,为什么?)。

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

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

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

于 2011-02-25T03:45:49.017 回答
1

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

希望这可以帮助。

于 2011-06-18T13:13:47.527 回答
0

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

于 2015-09-30T11:07:16.883 回答