Visual Studio托管过程的目的是什么?

Fre*_*ool 161 visual-studio

使用Visual Studio调试程序时,您可以选择Enable the Visual Studio hosting process.这个选项的目的是什么,它有什么作用?

Han*_*ant 84

MSDN库没有提供关于"托管过程"的非常好的信息.Eric链接中列出的最后两个功能实际上是由该功能引起的问题.还有一个你迟早会遇到的问题:它使用不同的app.config文件.活动的名称为yourapp.vshost.exe.config.当您手动更改文件时,请注意这一点.

它支持的另一个功能是在调试应用程序时非常明显,但在任何地方都没有提到,Console.Write()产生的输出会发生什么.在非控制台模式应用程序中,它会被重定向到IDE的"输出"窗口.很有用.

术语"托管"是指CLR的一个特征,它可以是"托管"的.自定义CLR主机的示例是SQL Server和ASP.NET.托管允许在开始之前配置CLR.其中一个主要用途是配置主AppDomain并设置自定义安全策略.这正是托管过程正在做的事情.

此问题中提供了自定义CLR主机的一个很好的示例.

简而言之:在调试模式下,您运行的是CLR的自定义版本,可以改善调试体验.

  • 托管过程倾向于保持DLL的加载,我想从另一个运行的Visual Studio副本写入.杀死托管进程,甚至退出并重新启动有问题的VS都无济于事,因为新启动的托管进程再次加载DLL.这就是我通常禁用它的原因. (5认同)
  • 我习惯在每个新项目上禁用此功能.在使用C++/CLI WinForms Designer时遇到了一些奇怪的问题,在禁用此功能时没有出现这种问题. (4认同)
  • 此外,在Microsoft网站(http://msdn.microsoft.com/en-us/library/ms242202.aspx)上,它声明它启用了部分信任调试(不知道那是什么),以及设计时表达式评估,我经常使用它来评估立即窗口中的表达式.但是,如上所述,托管确实存在问题. (2认同)

Dar*_*rov 17

来自MSDN:

Visual Studio托管过程可提高调试器性能并启用新的调试器功能,例如部分信任调试和设计时表达式评估


Eri*_*ang 6

它在MSDN中进行了解释:调试和托管过程.