Qual è lo scopo del processo di hosting di Visual Studio?


165

Quando si esegue il debug di un programma utilizzando Visual Studio, viene fornita l'opzione Enable the Visual Studio hosting process. Qual è lo scopo di questa opzione e quale effetto ha?


88
Difficile credere che questa domanda sia stata chiusa come "non una vera domanda"! Il processo di hosting è abbastanza reale, sapere cosa fa è importante per qualsiasi programmatore .NET. Come qualsiasi opzione misteriosa in una pagina delle impostazioni di Visual Studio che è facile da raggiungere. Prendiamo questa gente riaperta.
Hans Passant,

Risposte:


85

La libreria MSDN non fornisce ottime informazioni sul "processo di hosting". Le ultime due funzionalità elencate nel link di Eric sono in realtà problemi indotti dalla funzionalità. Ce n'è un altro in cui ti imbatterai prima o poi: usa un file app.config diverso. Quello attivo si chiama yourapp.vshost.exe.config. Fai attenzione quando apporti modifiche manuali al file.

Un'altra caratteristica che supporta è molto visibile quando esegui il debug della tua app ma non è menzionata da nessuna parte è ciò che accade all'output prodotto da Console.Write (). In un'app in modalità non console, viene reindirizzato alla finestra Output dell'IDE. Molto utile.

Il termine "hosting" si riferisce a una funzionalità del CLR, può essere "ospitato". Esempi di host CLR personalizzati sono SQL Server e ASP.NET. L'hosting consente di configurare il CLR prima che venga avviato. Un utilizzo principale di questo è la configurazione dell'AppDomain principale e l'impostazione di criteri di sicurezza personalizzati. Questo è esattamente ciò che sta facendo il processo di hosting.

Un buon esempio di un host CLR personalizzato è disponibile in questa domanda .

Per farla breve: in modalità debug si esegue con una versione personalizzata di CLR, che migliora l'esperienza di debug.


4
Ho l'abitudine di disabilitare questa funzione su ogni nuovo progetto. Ho riscontrato strani problemi durante l'utilizzo di WinForms Designer in C ++ / CLI, che non si sono verificati con questa funzione disabilitata.
surfato il

È molto improbabile che sia rilevante, l'IDE C ++ non utilizza un processo di hosting né viene utilizzato in modalità progettazione.
Hans Passant,

2
Inoltre, sul sito Web Microsoft ( msdn.microsoft.com/en-us/library/ms242202.aspx ) afferma che abilita il Debug parziale della fiducia (nessun indizio di cosa si tratti) e la valutazione dell'espressione del tempo di progettazione, che utilizzo spesso per valutare le espressioni nella finestra immediata. Tuttavia, l'hosting ha i suoi problemi come notato.
Jay Imerman,

5
Il processo di hosting tende a mantenere le DLL caricate su cui voglio scrivere da un'altra copia in esecuzione di Visual Studio. L'eliminazione del processo di hosting o persino l'uscita e il riavvio del VS offensivo non aiuta, poiché il processo di hosting appena avviato carica nuovamente la DLL. Questo è il motivo per cui di solito lo disabilito.
gpvos,

Sto osservando che i Console.WriteLineregistri vengono stampati nella finestra di output anche quando disabilito l' Enable the Visual Studio hosting processopzione dalla finestra delle proprietà di un progetto di moduli di Windows. Non so perché.
RBT

17

Da MSDN :

Il processo di hosting di Visual Studio migliora le prestazioni del debugger e abilita nuove funzionalità di debugger, come il debug con attendibilità parziale e la valutazione dell'espressione in fase di progettazione


Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.