我有一个程序,它使用注册表来保存已打开的最后10个文件。曾经有一次我试图将它们保存在本地机器中,而是决定将它们保存在当前用户中。在尝试让一切工作的过程中,我创建了一个清单来强制程序以管理员身份运行,我不再需要它。我遇到的问题是我似乎无法删除该要求。
我有.... 将项目属性更改为“创建没有清单的应用程序”,添加了一个名为app.manifest的新项,默认为asInvoker,并更改了属性以使用该清单,重命名了文件名中包含单词manifest的任何文件。
这些尝试都没有奏效。该程序仍以管理员身份运行。我一定错过了什么,但我不确定是什么。
以下是app.manifest中的行
<requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
</requestedPrivileges>
感谢您的帮助!!
加里
答案 0 :(得分:10)
查看Properties文件夹中的app.manifest文件。删除以下行:
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
添加以下行而不是:
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
如果这没有帮助,请首先确保您还从bin \ Debug文件夹中删除了清单文件。简单地从解决方案中删除它无济于事,因为文件可能仍然在输出文件夹中可用。
这就是为什么我认为您不应该从项目中删除清单文件,而是将其更改为按预期工作。
答案 1 :(得分:3)
虽然这个问题已经超过一年了,但我正在回答它,因为它可能会节省一天的时间。
如果您已将应用程序配置为以管理员模式运行,现在要撤消这些权限,则需要执行以下步骤。
更改
<requestedExecutionLevel level="requireAdministrator" uiAccess="false" />
要
<requestedExecutionLevel level="asInvoker" uiAccess="false" />
右键点击您的项目 - &gt;清理您的解决方案 - &gt;重建您的解决方案就是这样。