我注意到 .NET DLL 的位置有些奇怪。我试图调试 System.ServiceModel.dll 的问题,我注意到即使我安装了 .NET 4.0,我的 GAC 中也只安装了 ServiceModel DLL 的 3.0 版本(我通过浏览 C:\Windows 进行了检查\部件)。但是,如果我导航到“C:\Program Files\Reference Assemblies\Microsoft\Framework.NETFramework\v4.0\Profile\Client”,4.0 版本就在那里。那么为什么.NET 不将 4.0 版本安装到 GAC 中呢?
考虑到它没有,我的 4.0 程序如何知道在哪里可以找到 4.0 DLL?我上面给出的文件路径是自动探测的吗?我回头查看了使用 4.0 DLL 的应用程序,以确认它不会在本地复制 DLL,因此它似乎必须从 GAC 获取它(现在我知道 DLL 不存在),或者正在探测.NETFramework 文件夹。这真的让我很困惑...
编辑:我按照 MystereMan 的建议运行了“Gacutil.exe /l System.ServiceModel”,但它仍然只显示 3.0 版本。这是否意味着 .NET 4 毕竟没有将 DLL 安装到 GAC 中?
编辑 #2 和解决方案:我的 PATH 中的 gacutil.exe 是旧版本,无法看到 4.0 程序集。通过搜索我的电脑,我在这里找到了 4.0 版本的 gacutil.exe:C:\Program Files\Microsoft SDKs\Windows\v7.0A\bin\NETFX 4.0 Tools。使用它,我终于可以看到列出了 System.ServiceModel.dll 的 4.0。感谢大家的帮助!
谢谢,
-罗伯特