为什么MSBuild总是为我的UWP解决方案构建我的所有平台的任何想法,即使我指定只为ARM平台构建。这是我正在使用的命令行:
MSBuild.exe C:\MyApp\MyApp.sln /p:Configuration=Release /p:Platform=ARM
我错过了什么或做错了什么?
感谢。
更新 - 1:
我也尝试将x86指定为平台,但它仍构建所有平台。
答案 0 :(得分:1)
在花了好几个小时试图找出这个问题之后,我最终弄明白了什么是错的,至少部分是这样!
如上所述,除非我首先通过.NET IDE创建一个包并且只选择一个平台,否则上述操作无法正常工作。一旦我这样做,上面的命令行将构建在命令行中指定的相关平台!
我刚刚再次尝试并通过.NET IDE创建了一个包并重新选择了所有平台并再次调用了我的原始命令行,它构建了所有平台而不是命令行中指定的平台。显然,解决方案文件中存在导致这种情况的内容,但我个人认为这种行为是错误的并且是一个错误。
以下命令行似乎与通过.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"
虽然上述工作与.NET IDE中选择的内容无关,但我还没有想出如何构建所有平台。
我还将通过.NET IDE选择调查原始命令行问题和链接,如果我发现导致它的原因,我将更新我的答案。
希望这有帮助。