MSBuild 始终构建所有平台,即使提供了特定的平台



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

MSBuild.exe C:MyAppMyApp.sln /p:Configuration=Release /p:Platform=ARM

我错过了什么或做错了什么吗?

谢谢。

更新 - 1:

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

在花了几个小时试图弄清楚这个问题之后,我终于弄清楚了问题所在,至少部分是这样!

如前所述,上述方法无法按预期工作,除非我首先通过 .NET IDE 创建包并且只选择单个平台。完成此操作后,上面的命令行将构建命令行中指定的相关平台!

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

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

若要在发布模式下仅为 ARM 生成包,请执行以下操作:

msbuild "c:myappmyapp.sln" /p:configuration=release;platform=ARM;
AppxBundle=Always;AppxBundlePlatforms="ARM"

若要在调试模式下仅为 x86 生成包,请执行以下操作:

msbuild "c:myappmyapp.sln" /p:configuration=debug;platform=x86;
AppxBundle=Always;AppxBundlePlatforms="x86"

虽然上述方法有效,但与 .NET IDE 中选择的内容无关,但我还没有弄清楚如何构建所有平台。

我还将调查原始命令行问题以及通过 .NET IDE 选择的链接,如果我找出导致它的原因,我将更新我的答案。

希望这有帮助。

最新更新