Xamarin:针对不同构建配置的不同 appxmanifest 文件

Posted

技术标签:

【中文标题】Xamarin:针对不同构建配置的不同 appxmanifest 文件【英文标题】:Xamarin: Different appxmanifest files for different build configurations 【发布时间】:2018-05-28 06:45:10 【问题描述】:

我想为某些构建配置使用不同的 Package.appxmanifest 文件。我不能在我的 Xamarin-UWP 项目中包含多个 appxmanifest 文件。 像 android 那样做的想法也行不通:

处理多个 AndroidManifest 文件:

<PropertyGroup Condition="'$(Configuration)|$(Platform)' == 'Release-CH|AnyCPU'">
…
<AndroidManifest>Properties\AndroidManifestCH.xml</AndroidManifest>
</PropertyGroup>

如何为 UWP 实现这一目标?

【问题讨论】:

【参考方案1】:

像 Android 那样做的想法也行不通

根据App package manifest,每个应用包都必须包含一个包清单。如果在 uwp 中新建 appxmanifest 文件,会抛出如下错误。

该项目包含 2 个表示应用清单的项目:Package.appxmanifest、Test.appxmanifest。该项目只能包含一个应用清单

如果您确实想为某些构建配置使用不同的 Package.appxmanifest 文件。你可以手动编辑FileGuidTest.csproj

右键项目->卸载项目->重新右键项目->编辑Project.csproj文件。

<ItemGroup>
  <AppxManifest Include="Package.appxmanifest">
    <SubType>Designer</SubType>
  </AppxManifest>
  <AppxManifest Include="app.appxmanifest">
    <SubType>Designer</SubType>
  </AppxManifest>
  <None Include="FileGuidTest_TemporaryKey.pfx" />
  <AppxManifest Include="Test.appxmanifest">
    <SubType>Designer</SubType>
  </AppxManifest>
</ItemGroup>

找出上面的ItemGroup节点,只保留一个AppxManifest。然后修改follow PropertyGroup节点。

<PropertyGroup>
  <ApplicationManifest>Package.appxmanifest</ApplicationManifest>
</PropertyGroup>

【讨论】:

不起作用。我添加了大约 10 个 PropertyGroups:Package.appxmanifest ...并在具有所需条件的一个中添加:PackageCH.appxmanifest ...另外我在 ItemGroup 中添加了两个文件(不属于任何 PropertyGropus):... ItemGroupPropertyGroup 都只有一个元素。 这似乎行得通。但是,尽管 PackageCH.appxmanifest 不是 ItemGroup 的一部分(而是在一个 PropertyGroup 中),但它在项目的可视树视图中显示为项目文件。

以上是关于Xamarin:针对不同构建配置的不同 appxmanifest 文件的主要内容,如果未能解决你的问题,请参考以下文章

如何为不同的配置分离 Makefile 构建输出?

Xamarin iOS APNs 不同的负载

jenkins针对不同的项目组对用户进行权限分配

针对不同端点的多个用户详细信息服务

针对具有不同构建参数的多个项目运行构建

SBT 多项目构建:针对不同子项目的 2 个不同版本的 sbt play 插件