1

我正在使用 ShellRunAs 工具来启动一个 .NET 应用程序。此 .NET 应用程序使用应用程序配置文件。

当我尝试通过 ShellRunAs 运行应用程序时,无论我使用何种凭据,应用程序似乎都无法找到其配置文件。

我使用 Process Monitor 查看失败的文件访问,看起来使用 ShellRunAs 会导致 .NET 以某种方式查找已批准的 EXE.config 路径,而不是完整的 EXE.config 路径。

例如,当我正常启动我的应用程序时,我看到成功读取

c:\程序文件 (x86)\我的公司\我的产品\MyLongApplicationName.exe.config

但是当我通过 ShellRunAs 启动时,我看到“未找到名称”条目:

c:\程序文件(x86)\我的公司\我的产品\MyLong~1.exe.config

我在这里错过了什么吗?有没有办法解决这个问题?

4

1 回答 1

0

这似乎是 ShellRunAs 和 GetShortPathName Win32 API 使用中的一个错误。

详细信息:http: //forum.sysinternals.com/83-style-paths-for-modules-when-using-shellrunas_topic16246.html

不幸的是,我唯一的解决方法是使用 8.3 命名方案的 exe.config 文件的副本。

修改 NTFS 注册表设置没有任何影响。

于 2012-09-14T15:45:23.053 回答