【问题标题】:How to embed a manifest file at compile time in Visual Studio 2010如何在 Visual Studio 2010 的编译时嵌入清单文件
【发布时间】:2010-11-03 06:09:32
【问题描述】:

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

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

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

为了完成这项工作,我有两个选择:

  1. “嵌入”它。
  2. 使用 exe 部署清单文件,并将其命名为 YourProject.exe.manifest。

我尝试了选项 2,但当我运行我的应用时,它不要求管理员权限?

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

那么,我该怎么做呢?我很乐意做 2,但它似乎不起作用?

【问题讨论】:

  • 如果您正在开发本机 C++ 应用程序,它会更简单。只需打开项目属性/链接器/清单文件,然后为“UAC 执行级别”选择一个新值。

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


【解决方案1】:

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

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

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

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

这在 Visual Studio 2008 中也应该可以工作。

【讨论】:

  • 我在模板中找不到应用程序清单文件。它属于哪个类别(代码、数据、常规等)?
  • 这里一样——我在模板中找不到它
  • 对于 VB.Net,单击解决方案应用程序选项卡中的“查看 Windows 设置”。 app.manifest 将会出现。
【解决方案2】:

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

【讨论】:

  • 这仅在 vb.net IDE 中可用。接受的答案描述了 C# 方式。
  • 感谢@HansPassant,我终于在VB.NET中找到了方法
【解决方案3】:

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

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

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

这使我的应用程序能够正确获取 app.manifest。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多