62

Visual Studioがビルドを実行すると、MSBuildが実行されて作業の大部分が実行されます。適切な構成プロパティとプラットフォームプロパティを使用して.slnファイルをMSBuildに渡すと、VisualStudioと同様にソリューションがビルドされます。

msbuild mysolution.sln /p:Configuration=Release /p:Platform="Any CPU"

ただし、違いあります。ビルドがVisualStudioではなくMSBuildでエラーになる場合や、その逆の場合があります。

プロセスに影響を与えるために、Visual StudioはどのパラメーターをMSBuildに渡しますか?ビルドの実行時に渡されるパラメーターを確認する方法はありますか?

4

2 に答える 2

45

Visual Studio は を実行しませんがMSBuild.exe、(アセンブリを使用して) ビルド エンジン自体をホストしますMicrosoft.Build.*。少なくとも、既定の C# プロジェクト システムの場合はそうです。他の言語、アドイン、パッケージなどでは、やり方が異なる場合があります。

実際、これに関する一連の投稿が Microsoft ブログにありました。それらを見つけて、この回答を更新しようとしています。

更新:また見つけました。ここで「Visual Studio での MSBuild」の投稿を探します

元の質問に関しては、このページがさらに役立つかもしれません。また、「ツール」、「オプション」、「プロジェクトとソリューション」、「ビルドと実行」に移動して、MSBuild 出力の詳細度を上げることもできます。「診断」を使用すると、基本的に、ビルドの開始時に設定されたすべてのプロパティが表示されます。

于 2012-08-13T11:14:09.600 に答える
12

まず、引数を指定して msbuild を実行し、/v:diag診断レベルのログを取得できます。これは、ビルドが失敗する理由を理解するのに非常に役立ちます。

それ以外の場合は、はい、Process Monitorを使用すると、プロセスに送信された特定のコマンドラインを確認できるプロセス開始イベントを監視できます。

具体的には:

  • プロセス モニターの実行
  • フィルター » フィルター...
  • Operation is Process Create" 追加
  • Operation is Process Start" 追加
  • わかった
  • VS およびコマンドライン msbuild を使用してビルドを実行する
  • 詳細列のコマンドライン引数を参照してください
于 2012-08-13T10:59:51.473 に答える