Visual Studioホスティングプロセスの目的は何ですか?


165

Visual Studioを使用してプログラムをデバッグする場合、を選択できますEnable the Visual Studio hosting process。このオプションのこの目的は何ですか、またどのような影響がありますか?


88
この質問が「本当の質問ではない」と締め切られたとは信じられません。ホスティングプロセスは十分に現実的であり、それが何をするかを知ることは、.NETプログラマにとって重要です。簡単にアクセスできるVisual Studio設定ページの神秘的なオプションと同様に。この再開された人々を取得しましょう。
Hans Passant 2013

回答:


85

MSDNライブラリは、「ホスティングプロセス」に関する非常に良い情報を提供していません。エリックのリンクにリストされている最後の2つの機能は、実際にはその機能によって引き起こされる問題です。遅かれ早かれ実行することになっているもう1つがあります。それは別のapp.configファイルを使用します。アクティブな名前はyourapp.vshost.exe.configです。ファイルを手動で変更する場合は、このことに注意してください。

アプリをデバッグするときに非常に目に見えるが、どこにも言及されていないサポートする別の機能は、Console.Write()によって生成された出力に何が起こるかです。コンソール以外のモードのアプリでは、IDEの出力ウィンドウにリダイレクトされます。非常に便利。

「ホスティング」という用語はCLRの機能を指し、「ホスティング」することができます。カスタムCLRホストの例は、SQL ServerとASP.NETです。ホスティングにより、CLRを開始する前に構成できます。これの主な用途の1つは、プライマリAppDomainの構成とカスタムセキュリティポリシーの設定です。まさにホスティングプロセスが行っていることです。

この質問には、カスタムCLRホストの良い例があります。

要するに、デバッグモードでは、カスタマイズされたバージョンのCLRを使用して実行しています。これは、デバッグエクスペリエンスを向上させるものです。


4
私はすべての新しいプロジェクトでこの機能を無効にする習慣があります。C ++ / CLI WinForms Designerを使用しているときに、この機能を無効にしても発生しなかった奇妙な問題に遭遇しました。
2012

C ++ IDEはホスティングプロセスを使用せず、デザインモードでも使用されません。
ハンスパッサント

2
また、MicrosoftのWebサイト(msdn.microsoft.com/en-us/library/ms242202.aspx)には、パーシャルトラストデバッグ(それが何であるかわかりません)と、私が頻繁に使用するデザイン時の式の評価を有効にすることが記載されていますイミディエイトウィンドウで式を評価します。ただし、前述のとおり、ホスティングには問題があります。
Jay Imerman 2013

5
ホスティングプロセスは、実行中のVisual Studioの別のコピーから書き込みたいDLLをロードしたままにする傾向があります。新しく開始されたホスティングプロセスがDLLを再度ロードするため、ホスティングプロセスを強制終了したり、問題のあるVSを終了して再起動したりしても効果がありません。これが通常は無効にする理由です。
gpvos 2016年

WindowsフォームプロジェクトのプロパティウィンドウからオプションConsole.WriteLineを無効にしても、ログが出力ウィンドウに出力されることを確認していEnable the Visual Studio hosting processます。なぜだかわかりません。
RBT 2017

17

MSDNから:

Visual Studioホスティングプロセスにより、デバッガーのパフォーマンスが向上し、パーシャルトラストデバッグや設計時の式評価などの新しいデバッガー機能が有効になります。


弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.