ShellRunAs防止读取EXE配置文件

时间:2012-09-14 15:33:32

标签: .net configuration

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

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

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

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

  

c:\ program files(x86)\ my company \ my   产物\ MyLongApplicationName.exe.config

但是当我通过ShellRunAs启动时,我看到“NAME NOT FOUND”条目:

  

c:\ program files(x86)\ my company \ my product \ MyLong~1.exe.config

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

1 个答案:

答案 0 :(得分:0)

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

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

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

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