3

重复让程序集显示在“添加引用”的 .NET 选项卡中

所以,我使用的是 Visual C# 2008 Express Edition,我只是走了一点弯路,因为我发现我假设“添加引用”对话框的 .NET 选项卡列出了 GAC 的内容是不正确的.

这对我来说有点问题,因为我想从我的项目中引用的程序集仅在 GAC 中可用。(它是从 XNA 2.0 redistributalbe 获得的 Microsoft.XNA.Framework v2.0,据我所知,它只安装到 GAC 中)。

我通过在 .csproj 文件中手动设置对 Microsoft.XNA.Framework 的引用来解决这个问题,然后从缓存中获取 dll 的副本。然后我能够为 DLL 创建一个目录,将其添加到注册表中 Visual Studio 的程序集目录列表中,然后瞧!我可以在 .NET 选项卡中看到它。

这一切对我来说似乎有点小题大做,我不认为我最初的假设(.NET 选项卡显示 GAC 的内容)有那么不合理或不常见。比我了解更多的人可以告诉我吗

  • 为什么没有显示 GAC 的内容?文档只是说它们不是,但是有充分的理由吗?
  • 实际上有没有办法让 GAC 的全部内容被列出?我在某处错过的复选框?

非常感谢任何信息。

4

2 回答 2

2

您假设 .NET 选项卡意味着 GAC,但事实并非如此。这意味着已安装的程序集,可能在也可能不在 GAC 中。一些安装在 Program Files 下,然后这些程序集在 .NET 选项卡中可见。

当您添加对项目的引用时(忽略网站项目,因为它们是混蛋子异常并且需要 DIAF),.NET 运行时将使用从可执行目录开始的级联搜索来定位该程序集,检查 PATH 环境变量并以 GAC 结尾。我没有链接,但是 MSDN 上至少有一篇很好的文章专门解释了这一点。

上面的内容在这里似乎没有直接关联,但在某种意义上,当您进行开发时,您可以在开发机器上的某处引用程序集,但是当您将应用程序分发到另一台机器以供生产使用时,该程序集不一定必须与它在您的开发机器上的位置相同。当您开发时,您可以将程序集放在本地或程序文件中,但是如果该程序集在 GAC 中,那么您的程序应该可以在另一台机器上运行。

(通常,当您安装 SDK 时,安装程​​序将足够智能,可以创建在 .NET 选项卡中显示 dll 所需的注册表项。您的 XNA 框架示例可能归结为您安装运行时包而不是 SDK 或其他东西。)

希望有帮助。

于 2009-05-26T06:14:46.753 回答
-1

下载并使用Muse VSReferences 扩展。它会自动为您完成所有这些

s

于 2010-04-29T19:05:48.203 回答