MSBuild.rspを使用する方法、またはデフォルトのVisual Studio MSBuild.exeコマンドラインスイッチを指定する方法


0

私はMSBuild.exeが常に使用するようにしたい / MP プロジェクトが常に複数のコアで構築されるようにオプション。最後の行に/ MPを追加してみました MSBuild.rsp (MSBuild.exe実行可能ファイルと同じディレクトリにあります)。ただし、/ MPオプションは使用されていません。 Visual Studioで常に/ MPオプションを使用する方法を教えてください。

MSBuild.rsp 使用したい動作について説明しますが、動作させることができませんでした。

自動応答ファイルは、プロジェクトをビルドするときにMSBuild.exeが自動的に使用する特別な.rspファイルです。このファイルMSBuild.rspは、MSBuild.exeと同じディレクトリにある必要があります。そうしないと、見つかりません。このファイルを編集して、MSBuild.exeにデフォルトのコマンドラインスイッチを指定できます。たとえば、プロジェクトをビルドするたびに同じロガーを使用する場合は、/ loggerスイッチをMSBuild.rspに追加すると、プロジェクトがビルドされるたびにMSBuild.exeによってロガーが使用されます。

私は、MSBuild.exeが以前のバージョンのMSBuild.rspを使用していないことを確認するためにコンピュータを再起動しました。

Windowsのタスクマネージャで[ファイルの場所を開く]をチェックして、MSBuild.exeと同じディレクトリにあるMSBuild.rspを変更していることを確認しました。プロジェクト構成MPオプションは空白です(明示的に無効になっていません)。

私はMSBuild.rspの/ MPオプションが「プロジェクトのみ」の再ビルドを実行し、Windowsのタスクマネージャでcl.exeインスタンスを1つだけカウントすることで使用されていないことを確認しました。 10を超えるcl.exeインスタンスがあります。

私はまたMSBuild.rspにたくさんのゴミを追加しようと試みました、そして、エラーも警告もVisual Studioによって報告されなかったので、私はMSBuild.rspがまったく使われていないと思います。

MSBuildの診断出力ログを有効にしようとしましたが、プロジェクトの構成設定で明示的に有効にしたときに/ MPオプションが(Tracker.exeの引数として)表示されます。 MSBuild.rspでは、/ MPオプションはこの出力に含まれていません。 Tracker.exeが何であるかわかりません(その場所にMSBuild.exeが表示される予定です)。また、Tracker.exeと同じディレクトリに/ MPのTracker.rspファイルを追加して試したところ、どちらも役に立ちませんでした(そして、MSBuild.rspを自分のTracker.exeディレクトリに追加してみました。影響はありませんでした)。

rspファイルが機能するかどうかを確認するために、プロジェクトの構成設定に@オプションを追加してrspファイルを明示的に追加しましたが、診断ビルドの出力で/ MPオプションにロードしたように見えますが、効果はありません。 。 / MPオプションは、プロジェクト構成でMPオプションが指定されたときのようにTracker.exeへの引数としてではなく、後でcl.exeへの引数として含まれます。私はオプションがcl.exeではなく、MSBuild(またはTracker.exe)であるべきだと思います。

私はほとんどC ++プロジェクトでVisual Studio 2010を使っています。


(1)ソリューションに多数のプロジェクトがあり、(2)プロジェクト構成がバージョン管理されていて、チェックしたくないので、プロジェクト構成を直接変更する必要がないように、デフォルトのスイッチを変更したいです。現時点ではこれらの変化に。
JDiMatteo

回答:


1

できることの1つは、それをpropsファイルに入れて、個々のプロジェクトにそのファイルから継承させることです。下 ItemDefinitionGroup あなたの中 ClCompile 持っている <MultiProcessorCompilation>true</MultiProcessorCompilation>


Jay、ありがとう、そしてMicrosoftとVisual Studioに対する私の信頼は回復しました。 propsファイルを追加する代わりに、&lt; ClCompile&gt;を追加しました。 &lt; MultiProcessorCompilation&gt; true&lt; / MultiProcessorCompilation&gt; &lt; / ClCompile&gt; &lt; ItemDefinitionGroup&gt;の下部にC:¥Program Files(x86)¥MSBuild¥Microsoft.Cpp¥v4.0¥Microsoft.Cpp.Default.propsにあるので、この設定はすべてのプロジェクトのデフォルトになります。
JDiMatteo

嬉しいことです。他の誰かがそれを行うことを知っているかどうかを確認して、チーム全体で異なる特性を持たないようにします。ソース管理にチェックインしたい場合は、プログラムファイルにシンボリックリンクを(mklinkを介して)作成して、より便利な場所にあるデフォルトのpropsファイルのコピーを指すことができます(プロジェクトをチェックアウトする場所など) 。それからあなたは常に最新のコピーを持っていて、MSFTフォルダの下のファイルを変更することを忘れないでください。
Jay Carlton
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.