如何在Visual Studio 2010中的编译时嵌入清单文件

时间:2010-11-03 06:09:33

标签: visual-studio visual-studio-2010 uac manifest

我有一个带有以下节点的清单文件的项目:

 <requestedExecutionLevel  level="requireAdministrator" uiAccess="false" />

...意思是我希望它默认只以“管理员”身份运行。

从搜索周围,为了完成这项工作我有两个选择:

  1. “嵌入”它。
  2. 使用exe部署清单文件,并将其命名为YourProject.exe.manifest。
  3. 我尝试过选项2,当我运行我的应用时,它不会要求管理员权限吗?

    那么,我如何在VS2010中选择选项1?我听说过mt.exe,但这对我来说并不好,因为它是在构建后完成的。我需要选择部分解决方案和项目文件本身。

    那么,我该如何使这项工作?我很乐意做2,但它似乎不起作用?

3 个答案:

答案 0 :(得分:21)

在Visual Studio 2010中,新项目的默认设置是将清单嵌入应用程序(选项#1)。默认情况下,虽然包含默认清单。您需要做的是添加自定义清单。

  • 右键单击项目并选择“添加新项目”
  • 选择“应用程序清单文件”

这会将名为app.manifest的文件添加到项目中。打开该文件并将该行修改为以下

<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />

这也适用于Visual Studio 2008.

答案 1 :(得分:8)

在VS2010下,它有点不同。右键单击Project并选择Properties。选择“应用程序”选项卡,然后单击“查看Windows设置”。这将打开清单。然后进行所需的更改。

答案 2 :(得分:0)

我遇到了因将现有app.manifest复制到另一个项目(C#)而导致的同样问题。

我通过卸载项目,编辑其csproj文件并插入以下部分来修复它:

<PropertyGroup>
  <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>

这允许我的应用程序正确地获取app.manifest。