Visual studio 在VisualStudio中从GAC引用DLL

Visual studio 在VisualStudio中从GAC引用DLL,visual-studio,dll,gac,Visual Studio,Dll,Gac,所以我四处寻找,试图找到一些关于这方面的帖子,有很多,但没有一个能解决我的具体问题(我可以找到) 我试图在我的项目中添加一些DLL,但很少有来自: C:\Windows\Microsoft.NET\Framework\v3.5\XXX.YYY.dll 我期待的应该是来自GAC的消息 请建议我在Visual Studio中引用Dll的最佳做法。这些程序集是.NET Framework 3.5的程序集。程序集缓存位于 %SystemRoot%\assembly 您可以将(滚动到页面末尾)与项目一

所以我四处寻找,试图找到一些关于这方面的帖子,有很多,但没有一个能解决我的具体问题(我可以找到)

我试图在我的项目中添加一些DLL,但很少有来自:

C:\Windows\Microsoft.NET\Framework\v3.5\XXX.YYY.dll
我期待的应该是来自GAC的消息


请建议我在Visual Studio中引用Dll的最佳做法。

这些程序集是.NET Framework 3.5的程序集。程序集缓存位于

%SystemRoot%\assembly
您可以将(滚动到页面末尾)与项目一起分发。Aso如果您使用的是VS安装项目,您只需使用属性页来引用它


要引用这些程序集,您可以轻松地右键单击“引用”>“添加引用”,然后从.NET选项卡中选择程序集。有关引用GAC程序集的信息,请参阅。

这不是它的工作方式。使用Project+添加引用时,始终添加引用程序集。这是来自GAC的组件。GAC是一个运行时实现细节,它仅在程序执行时用于提供程序集,而不是在构建程序时

这是非常重要的,它的工作方式,你的机器上的GAC的内容将不匹配的GAC的内容在你的用户的机器上。当用户的机器没有正确配置以执行您的程序时,有很多DLL地狱对策可以确保参考程序集到用户GAC内容的映射得到良好的诊断

这也是使用资源管理器导航到c:\windows\assembly时无法直接查看GAC文件夹的原因。shell扩展处理程序隐藏详细信息,以防止您犯错误,例如将GAC ed程序集添加为引用程序集。没有为.NET 4程序集安装相同的扩展处理程序,您可以查看c:\windows\microsoft.NET\assembly并查看GAC的结构。不要假设现在可以从那里添加引用,引用程序集在.NET4中更为重要,它们与运行时程序集完全不同

因此,看到存储在C:\Windows\Microsoft.NET\Framework\v3.5中的引用程序集是完全正常的,这是.NET 3.5特定引用程序集(如System.Core.dll)的主目录。对于.NET 4项目,引用程序集存储在c:\program files\reference Assembly中,它们应该而不是引用c:\Windows\Microsoft.NET\Framework\v4.0.30319。查看不使用正确的引用程序集会导致什么样的不可诊断的痛苦。

这一个对我有用(请参阅我的帖子)[link()