我试图查看我的应用程序在运行时引用了哪个版本的程序集。我知道该程序集安装在 GAC 中,因为它是通过 MSI 安装的第三方商业产品,它在我运行时列出gacutil /l
,我还可以在下面的文件夹中看到它C:\Windows\Microsoft.NET\assembly\GAC_MSIL
。
我正在使用Process Explorer和下窗格中显示的引用的 DLL,以查看引用了哪个程序集,并且我发现引用的程序集位于C:\Windows\assembly\tmp\NYIEPEO0\
. 当我尝试在 Windows 资源管理器中浏览该文件夹时(当应用程序仍在运行并且引用的程序集仍在 Process Explorer 中显示时),它说它不存在或不可访问。此外,Process Explorer 没有显示任何详细信息——版本、描述等——所以我无法确定它是哪个版本的程序集。
我的问题是:为什么引用的程序集位于“tmp”文件夹下方而不是它实际所在的位置(我已经看到诸如此类的消息来源说它与安装程序集有关,但程序集已经安装在正确的位置,正如我上面指出的那样),我可以在 GAC 中禁用该行为,以便在运行时从其正确位置引用所有程序集吗?