2016-04-22 8 views
0

私はARMプラットフォーム用にのみビルドするように指定していますが、MSBuildがUWPソリューション用のすべてのプラットフォームを常に構築している理由については、これは私が使用しているコマンドラインです:MSBuildは、特定のプラットフォームが提供されている場合でも常にすべてのプラットフォームを構築します

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

私に何か間違いや何か問題がありますか?

ありがとうございました。

UPDATE - 1:

私はまた、プラットフォームとしてのx86を指定して試してみたが、それはまだ、すべてのプラットフォームを構築します。

+0

質問をする場合は、理由を説明してください。私は他に何が提供できるかはよく分かりませんが、あなたが提供すべき何かがある場合は、私に知らせてください。 – Thierry

答えて

0

この問題を解明するのに時間を費やした結果、私は結局何が間違っているのか、部分的にはうまく分かっ​​たのです。

前述のように、私が最初に.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の選択を介したリンクについても調べていきます。その原因がわかったら、私の答えを更新します。

これが役に立ちます。

関連する問題