MSBuild始终生成所有平台,即使提供了特定平台

MSBuild始终生成所有平台,即使提供了特定平台,msbuild,win-universal-app,windows-10-universal,psake,Msbuild,Win Universal App,Windows 10 Universal,Psake,关于为什么MSBuild总是为我的UWP解决方案构建所有平台的任何想法,即使我指定只为ARM平台构建。这是我正在使用的命令行: MSBuild.exe C:\MyApp\MyApp.sln /p:Configuration=Release /p:Platform=ARM 我是错过了什么还是做错了什么 谢谢 更新-1: 我也尝试过将x86指定为平台,但它仍然构建所有平台。在花了几个小时试图解决这个问题之后,我终于找到了问题所在,至少部分是这样 如上所述,除非我首先通过.NETIDE创建一个包,并

关于为什么MSBuild总是为我的UWP解决方案构建所有平台的任何想法,即使我指定只为ARM平台构建。这是我正在使用的命令行:

MSBuild.exe C:\MyApp\MyApp.sln /p:Configuration=Release /p:Platform=ARM
我是错过了什么还是做错了什么

谢谢

更新-1:


我也尝试过将x86指定为平台,但它仍然构建所有平台。

在花了几个小时试图解决这个问题之后,我终于找到了问题所在,至少部分是这样

如上所述,除非我首先通过.NETIDE创建一个包,并且只选择一个平台,否则上述操作无法按预期工作。一旦我这样做了,上面的命令行将构建命令行中指定的相关平台

我刚刚再次尝试,并通过.NETIDE创建了一个包,重新选择了所有平台,再次调用了我原来的命令行,它构建了所有平台,而不是命令行中指定的平台。很明显,解决方案文件中有某种东西导致了这种情况,但我个人认为这种行为是错误的,是一个bug

以下命令行似乎与通过.NET IDE选择的内容无关:

要仅在发布模式下为ARM构建软件包,请执行以下操作:

msbuild "c:\myapp\myapp.sln" /p:configuration=release;platform=ARM;
AppxBundle=Always;AppxBundlePlatforms="ARM"
要仅在调试模式下为x86生成包,请执行以下操作:

msbuild "c:\myapp\myapp.sln" /p:configuration=debug;platform=x86;
AppxBundle=Always;AppxBundlePlatforms="x86"
虽然上面的工作与.NETIDE中选择的内容无关,但我还没有弄清楚如何构建所有平台

我还将通过.NETIDE选择调查原始命令行问题和与的链接,如果我发现是什么原因,我将更新我的答案


希望这能有所帮助。

如果你想回答这个问题,请解释一下原因!!我不太明白我还能提供什么,但是如果你觉得应该提供什么,请告诉我,我会提供的。谢谢。令人恼火的是,没有指定AppXBundlePlatform只会覆盖并强制所有平台的构建。