如何使用MSBuild构建多个平台

如何使用MSBuild构建多个平台,msbuild,uwp,azure-devops,windows-store,windows-dev-center,Msbuild,Uwp,Azure Devops,Windows Store,Windows Dev Center,我正在将Visual Studio联机生成与MSBuild任务一起使用。我当前有以下MSBuild参数提供给我的任务: /p:Configuration=Release;AppxBundle=Always;AppxBundlePlatforms="x86|x64|ARM";AppxPackageDir="$(Build.BinariesDirectory)\AppxPackages\\";UapAppxPackageBuildMode=StoreUpload 这将在x86、x64和ARM中创建

我正在将Visual Studio联机生成与MSBuild任务一起使用。我当前有以下MSBuild参数提供给我的任务:

/p:Configuration=Release;AppxBundle=Always;AppxBundlePlatforms="x86|x64|ARM";AppxPackageDir="$(Build.BinariesDirectory)\AppxPackages\\";UapAppxPackageBuildMode=StoreUpload
这将在
x86
x64
ARM
中创建我的应用程序。它在
x86
中创建库的发布版本,但在
x64
ARM
中创建我的库的调试版本

当创建my
.appxupload
包时,由于我的库是在调试中构建的,因此它无法通过Windows认证测试

如何为所有3种配置生成MSBuild。我猜是因为我没有提供
/platform
配置。如何为3个平台提供此配置


我尝试了
platform=“x86 | x64 | ARM”
,但对于标准项目文件,它返回了一个错误

,无法在单个命令中执行此操作。使用多个命令为所需的每个平台/配置组合生成项目,或者使用“主”生成文件,该文件对您执行相同的操作,例如:

<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" DefaultTargets="FullRebuild">
  <Target>
    <ItemGroup>
      <Configurations Include="Debug;Release"/>
      <Platforms Include="x86;x64;ARM"/>
      <ConfigAndPlatform Include="@(Configurations)">
        <Platform>%(Platforms.Identity)</Platform>
      </ConfigAndPlatform>
    </ItemGroup>
    <MSBuild Projects="myproject.sln" Targets="Build"
             Properties="Configuration=%(ConfigAndPlatform.Identity);Platform=%(ConfigAndPlatform.Platform)"/>
  </Target>
</Project>

%(平台、身份)

如果您还可以列出正在使用的MSBuild版本以及目标UWP SDK的版本,这将非常有用。使用Vs2017 MSBuild,目标是Windows 10周年纪念版,您可以共享生成日志以及从WACK中看到的错误吗?(您可以将详细信息发送给ms.com上的rmpablos)@rido它现在似乎正在发布中。我想这是因为我勾选了任务的
clean
。似乎在发行版中生成了
x86
,另外两个在调试中。非常奇怪,要对自动构建执行此操作,我可能需要3个具有单独配置的MSbuild任务,然后需要1个创建StoreUpload的任务?这就是Visual Studio在“为存储创建包”时必须做的吗?1)是的,或者如答案所示,一个任务为您调用了3次MsBuild 2)抱歉,我不知道,因为我没有使用UWP targets从单个MsBuild构建三个平台的经验command@rido是的,我对它不熟悉;语法真的只是/p:platform=“a | b | c”吗?