如何强制我的C#应用程序不以管理员身份运行?

如何强制我的C#应用程序不以管理员身份运行?,c#,.net,windows,uac,administrator,C#,.net,Windows,Uac,Administrator,当我以管理员身份运行Visual Studio,并使用它运行我的C#应用程序时,它会自动以管理员身份运行该应用程序。 这会在尝试使用互操作时产生问题,因为它不会连接到正在运行的进程,而是以管理员的身份启动新进程。 这是一个很容易犯的错误,调试并不能帮助捕捉它 我想确保应用程序在较低的UAC级别上运行,或者如果权限错误,就停止它运行 我知道应用程序清单中有。问题在于,它似乎提供的唯一级别是asInvoker,requireAdministrator,以及高可用性。据我所知,这些只是提高了水平,而不

当我以管理员身份运行Visual Studio,并使用它运行我的C#应用程序时,它会自动以管理员身份运行该应用程序。
这会在尝试使用互操作时产生问题,因为它不会连接到正在运行的进程,而是以管理员的身份启动新进程。
这是一个很容易犯的错误,调试并不能帮助捕捉它

我想确保应用程序在较低的UAC级别上运行,或者如果权限错误,就停止它运行


我知道应用程序清单中有
。问题在于,它似乎提供的唯一
级别是
asInvoker
requireAdministrator
,以及
高可用性。据我所知,这些只是提高了水平,而不是降低了水平

我告诉你,你的问题不在于管理。你处理互操作的方式有问题我很好奇你为什么要以管理员的身份进行开发?@Louger Visual Studio必须在管理员中才能使用“注册COM互操作”。这是针对另一个项目的,但如果我忘了切换,事情就开始出问题了,而且很难找出原因。@greatb3不,这是不必要的。这只是因为您从F5运行。从VS运行的exe使用与启动VS相同的凭据。这也可能受到域策略的限制,即使以管理员身份运行,由于新注册表项的限制,您也无法注册。@Franck我不确定我们是否在同一页上。一个VS解决方案生成一个为COM互操作注册的程序集,因此必须使用VS作为管理员进行构建。另一个解决方案生成一个EXE,并与已经运行的其他程序(不是管理员)连接。如果VS仍然是admin,那么当我从VS(F5)运行EXE解决方案时就会出现问题,因为它以admin的身份运行EXE。您的问题不是admin,让我告诉您。你处理互操作的方式有问题我很好奇你为什么要以管理员的身份进行开发?@Louger Visual Studio必须在管理员中才能使用“注册COM互操作”。这是针对另一个项目的,但如果我忘了切换,事情就开始出问题了,而且很难找出原因。@greatb3不,这是不必要的。这只是因为您从F5运行。从VS运行的exe使用与启动VS相同的凭据。这也可能受到域策略的限制,即使以管理员身份运行,由于新注册表项的限制,您也无法注册。@Franck我不确定我们是否在同一页上。一个VS解决方案生成一个为COM互操作注册的程序集,因此必须使用VS作为管理员进行构建。另一个解决方案生成一个EXE,并与已经运行的其他程序(不是管理员)连接。如果VS仍然是admin,则当我从VS(F5)运行EXE解决方案时会出现问题,因为它以admin的身份运行EXE。