如何删除C#中的“以管理员身份运行”要求

问题描述:

我有一个程序使用注册表保存最近打开的10个文件。有一次,我试图将它们保存在本地机器中,但决定将它们保存在当前用户中。在试图让所有东西都起作用的过程中,我创建了一个清单来强制程序以管理员身份运行,而我不再需要这个清单。我遇到的问题是我似乎无法删除要求。如何删除C#中的“以管理员身份运行”要求

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

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

这里是在app.manifest

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

感谢您的帮助!

Gary

+0

从项目中删除清单文件。由于您向我们提供了非常少的细节,您显然做错了什么,不知道该怎么建议。您是否尝试过简单编辑当前版本和/或重新创建解决方案? – 2012-07-12 17:46:32

+0

代码示例如果你添加了一些东西,你肯定可以删除它,除非你不明白你在C#代码/功能方面首先添加的是什么 – MethodMan 2012-07-12 17:47:28

+2

我不确定你想要什么代码一个样本。正如我在原始问题中所述,我通过更改项目设置来删除项目清单,或者至少这是我的意图。 – Gary 2012-07-12 17:54:50

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

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

添加以下行,而不是这样的:

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

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

这就是为什么我认为你不应该从项目中删除清单文件,但改变它,它按预期工作。

+0

感谢您的回复! Debug目录中没有清单文件。我更改了项目属性以使用app.mainfest(我更新了原始问题以包含相关行)并重建了项目,并且仍以管理员身份运行 – Gary 2012-07-12 18:21:34

+2

随着我继续前进编码,并在完成您所建议的任务后,我不再有问题。自从添加app.maifest以来,我已经编译了几次该程序。第一次看,看看这个要求是否仍然存在。我不知道什么时候改变,但谢谢! – Gary 2012-07-13 21:10:32

虽然这个问题现在已经超过一年了,但我正在回答它,因为它可能会保存一天。

如果您已将应用程序配置为以管理员模式运行,并且现在要撤消这些权限,则需要执行以下步骤。

变化

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

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

鼠标右键点击你项目 - >清除您的解决方案 - >重建您的解决方案,就是这样。

+0

你是从哪里改变的?我的安装项目没有App.config可能性添加一个。我在任何地方都能看到这个“答案”,但没有解释如何创建app.config/manifest。 – ExtremeSwat 2015-08-05 12:46:08

+0

为什么你不能添加一个?你在做什么样的项目?这是一个胜利形式的应用程序? – Ehsan 2015-08-07 00:12:58