我正在做一些 WinForms 开发,运行 XP 和 VS 2005(我知道很古老)。我想确保我的应用程序可以在没有管理员权限的情况下运行,但是我懒得尝试以非管理员身份运行 VS,而且我不想登录和退出来测试我的应用程序。
有没有一种方法可以让我以非管理员身份进行调试?
是否有一组代码访问安全属性可以添加到我的代码中,以强制我以与非管理员相同的权限集运行?
我正在做一些 WinForms 开发,运行 XP 和 VS 2005(我知道很古老)。我想确保我的应用程序可以在没有管理员权限的情况下运行,但是我懒得尝试以非管理员身份运行 VS,而且我不想登录和退出来测试我的应用程序。
有没有一种方法可以让我以非管理员身份进行调试?
是否有一组代码访问安全属性可以添加到我的代码中,以强制我以与非管理员相同的权限集运行?
从您当前登录的桌面会话中以另一个用户身份运行 VS。请参阅在 Windows 中运行程序时如何启用和使用“运行方式”命令。这意味着您不必登录和退出。
我建议您通过 RunAs 以另一个用户身份运行您的目标应用程序,然后通过 Visual Studio 中的 Debug > Attach To Process... 菜单项将 VS 调试器附加到进程(如果需要)。
基于 Phil 的回答,您可以通过将启动项目设置为:
启动外部程序:c:\windows\system32\runas.exe
使用命令行参数:/noprofile /user:{MachineName}\{UserName} {ApplicationName}.exe
不幸的是,我认为没有一种自动方法可以将进程附加到 VS 调试器(因为有安全警告),而是有条件地调用
#if (DEBUG)
System.Diagnostics.Debugger.Launch();
#endif
系统将提示您单击两次以附加到调试器。