7

我有一个程序使用注册表来保存最近打开的 10 个文件。有一次我试图将它们保存在本地机器中,但决定将它们保存在当前用户中。在尝试让一切正常工作的过程中,我创建了一个清单来强制程序以管理员身份运行,我认为不再需要它了。我遇到的问题是我似乎无法删除该要求。

我有....将项目属性更改为“创建没有清单的应用程序”,添加了一个名为 app.manifest 的新项目,默认为 asInvoker 并更改了属性以使用该清单,重命名了任何包含单词 manifest 的文件文件名。

这些尝试都没有奏效。该程序仍以管理员身份运行。我一定错过了什么,但我不确定是什么。

这是 app.manifest 中的行

  <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
    <requestedExecutionLevel level="asInvoker" uiAccess="false" />
  </requestedPrivileges>

谢谢您的帮助!!

加里

4

2 回答 2

10

查看 Properties 文件夹中的 app.manifest 文件。删除以下行:

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

添加以下行而不是此行:

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

如果这没有帮助,首先确保您还从 bin\Debug 文件夹中删除了清单文件。简单地从解决方案中删除它并没有帮助,因为该文件可能仍然在输出文件夹中可用。

这就是为什么我认为您不应该从项目中删除清单文件,而是将其更改为按预期工作。

于 2012-07-12T18:02:08.217 回答
3

虽然这个问题现在已经有一年多了,但我正在回答它,因为它可能会节省一天。

如果您已将应用程序配置为以管理员模式运行,而现在您想撤销这些权限,那么您需要执行以下步骤。

改变

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

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

右键单击您的项目->清理您的解决方案->重建您的解决方案,就是这样。

于 2013-08-19T05:13:26.200 回答