如何使用MSBuild构建多个平台
我正在将Visual Studio联机生成与MSBuild任务一起使用。我当前有以下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中创建
/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”吗?