【发布时间】:2013-12-03 19:25:54
【问题描述】:
如何使用 C# 在 Windows 资源管理器窗口中打开 C:\windows\assembly\gac_msil?
说明:当我在开发环境中将程序集部署到 GAC 时,我喜欢将 .pdb 符号文件部署到与位于 C:\Windows\assembly\GAC_MSIL\AssemblyName\Version__PublicKeyToken\ 的程序集相同的目录中。这样,如果我想附加 Visual Studio 调试器,它会自动找到符号文件。
我构建了一个小实用程序,可以检测我何时将我的一个程序集添加到 GAC,并且我希望它显示一个为我弹出打开目录的按钮。我有按钮和路径,但启动一个使用路径启动 explorer.exe 的进程不起作用。我知道在 Windows 中打开此目录的唯一方法是通过“运行”对话框。
您无法在资源管理器中访问它或使用命令行命令:explorer.exe "C:\Windows\assembly\GAC_MSIL..."。仅当您在“运行”对话框中键入路径时。那么我该如何做 Run 对话框正在做的事情呢?
【问题讨论】:
-
看看 DEVPATH 环境变量,也许它对你有用,特别是如果你想调试 3rd 方 dll,或覆盖某些部分:msdn.microsoft.com/en-us/library/cskzh7h6%28v=vs.110%29.aspx
-
太棒了!我想我可能会得到一些有用的提示。以这种方式使用时,程序集是否被授予完全信任?
-
旧 GAC 通过 shell 扩展显示。无论你做什么来禁用它都不是你可以在你部署的机器上做的事情,你不拥有那个可以搞乱的机器。
-
我确实拥有那个。你的回答怎么了?它消失了。
-
作为记录,我让它工作,但最终允许将 .pdb 拖放到我的窗口中以将其复制到 GAC 文件夹。这种方式不需要任何黑客攻击。