我有一个.net应用程序,它将安装在以两种不同模式运行的“程序文件”下:
如何解决此案件?
如果我嵌入了一个清单文件(requireAdmin
设置为on),则它不适用于BASIC_MODE。如果我不使用任何清单,那么我没有机会在ADVANCED_MODE中弹出UAC。如果我使用“asInvoker
”或“highestAvailable
”,当我从Program Files以普通用户帐户运行应用程序时会出现奇怪的效果:它会在启动后立即关闭而不会发生任何崩溃。
答案 0 :(得分:3)
在清单中使用asInvoker,当您的应用程序在ADVANCED_MODE中启动时(您还不是管理员),使用ShellExecute和“runas”动词启动应用程序的新实例。
这些“奇怪的效果”表示您的应用无法真正以非管理员身份运行(如果没有清单,您的应用会运行一些兼容性垫片,如文件和注册表重定向)您可以使用Microsoft Application Compatibility Toolkit, LUA Buglight和Process Monitor寻找标准用户错误...