如何在我的c#app中嵌入特定于配置的清单文件?

Mik*_*ron 2 .net c# manifest visual-studio-2008

我想在我的C#应用​​程序中嵌入一个特定于平台的清单文件.有没有一种简单的方法在Visual Studio 2008中执行此操作而不使用在构建完成后调用的某些外部脚本?

在创建C#应用程序时,"应用程序"选项卡的配置和平台下拉列表已禁用,这使我无法选择要嵌入到该应用程序的体系结构或配置特定清单.我被迫在整个应用程序中使用一个清单.

我想过使用Post Build事件调用一个小脚$(Configuration)本来嵌入基于宏变量的正确清单,并且它可以工作,但是我想这样做而不需要调用其他脚本而我想知道是否可以做不使用构建事件.

我可以将x86和x64程序集引用嵌入到同一个清单文件中,运行时只会加载正确的文件吗?

csh*_*net 6

您只需添加app.manifest文件即可.右键单击项目,选择"添加" - >"新项目...".在"Visual C#Items"下的左侧树视图中选择"常规"条目.从"模板"列表中,找到并选择项目调用"Application Manifest File".单击添加.

现在你有一个清单,现在让我们使它具体化.右键单击该项目,然后选择"卸载项目".再次右键单击并选择"编辑{项目名称} .csproj".

找到第一个配置部分,最后你应该找到......

<PropertyGroup>
    ...
    <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

您需要将ApplicationManifest元素移动到平台配置的相应配置部分.你可能甚至需要像我在这里为AnyCPU一样在xml中添加一个部分:

<PropertyGroup Condition=" '$(Platform)' == 'AnyCPU' ">
    <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
Run Code Online (Sandbox Code Playgroud)

完成后,保存文件,右键单击项目,然后选择"重新加载项目".