web-dev-qa-db-ja.com

ビルド時に* .vshost.exeおよびその他のファイルが作成されないようにする

Microsoft Visual Studioの「追加」ファイルに関する次の情報を見つけました。

vshost.exeファイルの目的は何ですか?

私の質問は、.pdb、.manifest、vshost.exeファイルが作成されないようにする方法はありますか?それとも絶対に必要ですか?

デバッグした後、マシンで実行中のプロセスとして表示されていることに気付きました。

34
Paul Williams

リリース構成に切り替えます。次に、[プロジェクト] + [プロパティ]、[デバッグ]タブで、[Visual Studioホスティングプロセスを有効にする]オプションをオフにします。ビルド+クリーン、残っているものは削除できますが、それは元に戻りません。リリースビルドでこのオプションがデフォルトでオンになっていることは、ほぼ間違いなく、多少の欠陥ですが、防御可能です。

ホスティングプロセスは、CLRのカスタムホストバージョンです。正確に何が行われるかは十分に文書化されていませんが、プライマリAppDomainのセキュリティ設定の構成に関連しています。それなしでCASの問題と戦うことについて不平を言う人はいませんが、それをオフにすることは珍しく、IDEからデバッグする場合、ほとんど常にアプリが完全に信頼して実行されます。 .NETの初期バージョンでネットワーク共有を構築する場合は問題になります。無効にしたことから明らかな唯一のことは、GUIスタイルアプリでConsole.Writeを使用して作成したものは、出力ウィンドウに表示されなくなることです。リンクの非常に賛成の回答で主張されているように、速度とは何の関係もありません。コアフレームワークDLLは、VSとMSBuildが使用するため、RAMに既に存在します。

最善のことは、あまり心配しないことです。セットアップおよび展開プロジェクトはそれを無視します。

60
Hans Passant

Vshostファイルに関して、少なくともVS2010では:

  • ビルドでは生成されませんが、ビルド構成の選択(リリースを初めて選択したときにリリースで生成されます)および「Visual Studioホスティングプロセスを有効にする」をtrueに設定すると生成されます。 (構成デバッグとtrueに設定されたこのオプションはデフォルトであるため、vshost.exeはデフォルトでターゲットプロジェクトでVSを開くとbin/debugに作成されます。)
  • プロジェクトの再構築またはクリーンアップではクリーンアップされませんが、そのプロジェクトでVSが開いている場合に「Visual Studioホスティングプロセスを有効にする」がfalseの場合にのみ手動でクリーンアップされます。 (そして、このプロジェクトを開くともう生成されません。)

このフラグオプションがtrueで、ターゲットプロジェクトのVSが開かれている場合、このファイルは使用中として削除できません。チェックを外すと、vshost.exeをすぐに削除できます。

要約:これらのファイルの生成と削除は、ビルドプロセスとは関係ありません。

また、クラスライブラリである参照プロジェクトの「Visual Studioホスティングプロセスを有効にする」オプションは考慮されません。このオプションは、実行可能ファイルを生成するターゲットプロジェクトでのみ考慮されます。

1