3

ARM プラットフォームのみをビルドするように指定しているにもかかわらず、MSBuild が常にすべてのプラットフォームを UWP ソリューション用にビルドする理由についてのアイデア。これは私が使用しているコマンドラインです:

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

私は何かを見逃していますか、何か間違っていますか?

ありがとう。

更新 - 1:

また、x86 をプラットフォームとして指定しようとしましたが、それでもすべてのプラットフォームがビルドされます。

4

1 に答える 1

2

この問題を解決するために何時間も費やした後、少なくとも部分的には、最終的に何が問題なのかを突き止めました!

前述のように、最初に .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 の選択によるリンクを調査し、原因が判明したら回答を更新します。

お役に立てれば。

于 2016-04-25T00:42:52.660 に答える