如何在c#应用程序中嵌入特定于配置的清单文件?

本文关键字:配置 单文件 文件 于配置 应用程序 | 更新日期: 2023-09-27 18:02:50

我想在我的c#应用程序中嵌入一个平台特定的清单文件。是否有一个简单的方法在Visual Studio 2008中做到这一点,而不使用一些外部脚本在构建完成后调用?

在创建c#应用程序时,应用程序选项卡的配置和平台下拉菜单被禁用,阻止我选择架构或配置特定的清单来嵌入该应用程序。我被迫为整个应用程序使用一个清单。

我想到使用后构建事件调用一个小脚本嵌入基于$(Configuration)宏变量的正确清单,它的工作,但我想这样做,而不调用到其他一些脚本,我想知道是否有可能不使用构建事件。

我可以在同一个清单文件中嵌入x86和x64汇编引用,运行时将加载正确的一个?

如何在c#应用程序中嵌入特定于配置的清单文件?

你只需要添加app.manifest文件。右键单击项目,选择"添加"->"新建项目…"。选择左侧树视图"Visual c# Items"下的"General"条目。从"模板"列表中,找到并选择名为"应用程序清单文件"的项目。单击Add .

现在你有了一个清单,现在让我们使它特定于平台。右键单击项目并选择"卸载项目"。再次右键单击并选择"编辑{项目名称}.csproj"。

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

<PropertyGroup>
    ...
    <ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>

您需要将ApplicationManifest元素移动到平台配置的适当配置部分中。您甚至可能需要在xml中添加一个部分,就像我在这里为AnyCPU所做的那样:

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

完成后,保存文件,右键单击项目,选择"Reload project"