2015-06-17 178 views
1

我创建了一个windows窗体应用程序来完成一些功能。问题是当我部署应用程序时:运行没有管理员权限的WinForms应用程序?

  1. 如果我使用ClickOnce部署,那么一切工作正常。安装完成后,winforms应用程序运行时不会询问管理员密码。
  2. 如果我使用Visual Studio Setup Project进行部署并创建MSI安装程序,那么安装后每次运行时都需要管理员密码。

我想部署使用Visual Studio安装项目(MSI),但不希望软件要求提升特权。

的MSI安装程序不要求输入密码,但安装的程序一样。

+0

如果你安装的MSI安装程序,您需要管理员权限才能安装,但你不应该需要管理员权限才能运行该程序。你能否澄清,该程序会自动提示输入管理员密码,您没有嵌入式UAC清单,并且exe名称不包含设置或安装。 – sgmoore

+1

我有这个问题,因为该应用程序的快捷方式在其属性中设置了“以管理员身份运行”选项。 –

+0

@ThorstenDittmar我找到了,但快捷方式和EXE要求管理员权限。 – Sunny

回答

1

基本上你需要编辑(或添加,如果您还没有一个)的app.manifest文件,然后使用requestedExecutionLevel什么命令是需要的执行上下文。

阅读MSDN

+0

您不应该这样做,因为默认情况下应用程序不需要提升权限。 –

1

更多关于它你需要创建并在您的应用程序中嵌入的应用程序清单(UAC),如所描述here。如果你不想这样做,ClickOnce可能是一个解决方案。

MSDN有关于这一主题一些有用information,具体如下:

影响到用户的计算机。在Windows Installer部署中,应用程序通常依赖于共享组件,并存在版本冲突的可能性;通过ClickOnce部署,每个应用程序都是独立的,并且不会干扰其他应用程序。

安全权限。 Windows安装程序部署需要 管理权限并且只允许有限的用户安装; ClickOnce部署允许非管理用户安装和 仅授予必要的 应用程序的代码访问安全权限。

+0

通常,应用程序在没有提升权限的情况下运行。如果您希望应用程序以提升的权限运行,您必须创建清单。 –

2

你需要

工作UAC提升权限

。看看这个小姐文档link

而且这个项目做了一些[R & d与UAC example

希望这有助于

相关问题