我正在使用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
我在这里遗漏了什么吗?有没有办法解决这个问题?
答案 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注册表设置没有任何影响。