如何仅在发布版本上请求管理员权限?

How to request administrator permissons only on release builds?

描述:我希望我的应用程序仅在使用我的发布配置编译时请求管理员权限。主要是因为我在debugging/developingapp的时候不需要管理员权限,但是交付的时候需要管理员权限

目前我只使用app.manifest文件来请求管理员权限,代码如下:

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

现在回答我的问题: 我必须在项目文件 (name.csproj) 的哪个位置包含 app.manifest 文件以便仅在我使用“发布”配置时嵌入它?

我使用以下代码将 app.manifest 文件包含在项目文件中:

<ApplicationManifest>app.manifest</ApplicationManifest>

再次查看我的项目文件后,我想出了将它放在哪里。

答:在工程文件里面下面的PropertyGroup(name.csproj), 表示"Release" build,
您必须将以下代码包含在 app.manifest 文件中:

<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|AnyCPU'">
    ...
    <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>

这只允许在 “发布” 版本上请求管理员权限。 它也可以添加到其他构建配置中。