1

現在、Windows Phone 8.1、Windows アプリ 8.1、および Windows 10 ユニバーサル アプリをターゲットとする Microsoft ランタイム コンポーネント C# クラス ライブラリを構築しようとしています。この紹介を完了するために、私の環境では Windows 8.1 を実行し、Visual Studio 2015 を IDE として使用しています。

プロセスを自動化するために、私のチームでは、コマンドラインからそのライブラリをコンパイルして、結果の.winmdファイルを別の場所で使用する必要があります。ソリューションとプロジェクトは IDE で完全にコンパイルされますが、Windows コマンド ラインからプロジェクトをコンパイルすることはできません。調査の結果、動作する可能性のあるコマンドが見つかりましたが、いくつかの引数が欠落していることを示すエラーが表示されます。コマンドラインは次のものです。

C:\solutionDir>"C:\Windows\Microsoft.NET\Framework64\v4.0.30319\MSBuild.exe" project\project.csproj

プロジェクトをクリアし、このコマンドを実行すると、次のエラーが大量に発生します。

"C:\solutionDir\project\project.csproj" (default target) (1) ->
(CoreCompile target) ->
  Class1.cs(2,15): error CS0234: The type or namespace name 'System'
  does not exist in the namespace 'Windows' (are you missing an assembly
  reference?) [C:\solutionDir\project\project.csproj]

その他のエラーは、すべて同じ欠落した名前空間 'Windows' から発生しているもので、名前ApplicationModelDevicesSecurityおよびの名前空間の欠落Networkingです。この名前空間の名前は、このコマンドの実行中に存在しないように見える Windows RT C# API の一部です。

私が言ったように、コンパイルを達成するために必要なすべての引数を指定していないか、適切に実行していないようです。コマンド ラインでユニバーサル アプリを対象とする VS C# プロジェクト クラス ライブラリをビルドする適切な方法は何ですか?

4

1 に答える 1

0

古いバージョンの MSBuild.exe を使用していたと思います。これを機能させるには、スタンドアロン バージョンの MSBuildをインストールする必要がありました。コマンドファイルは次の場所にあります。

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" project\project.csproj

引数を使用して構成 (Debug|Release) を指定できます。

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" project\project.csproj /property:Configuration=Release

またはさらに良い:

"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild.exe" project\project.csproj /t:rebuild /property:Configuration=Release
于 2016-02-22T10:43:12.267 に答える