宿主进程是 Visual Studio 2005 中的一项功能,能提高调试性能,支持部分信任调试并支持
设计时表达式计算。宿主进程文件的文件名中包含 vshost,并位于项目的输出文件夹中。有关更多信息,请参见调试和宿主进程。
什么是宿主进程
说明
宿主进程文件 (.
vshost.exe) 由 Visual Studio 2005 使用,不应通过应用程序直接运行或部署。
提高的调试性能
宿主进程创建一个
应用程序域并将调试器与应用程序关联起来。执行这些任务会导致在开始调试和开始运行应用程序之间有很明显的延迟。通过在后台创建应用程序域和关联调试器,并在运行应用程序之间保存应用程序域和调试器状态,宿主进程使性能得到提高。有关应用程序域的更多信息,请参见应用程序域。
部分信任调试
在“项目设计器”的安全页中,可将应用程序指定为部分信任应用程序。调试部分信任应用程序需要对应用程序域进行特殊的初始化。此初始化由宿主进程处理。
设计时表达式计算
设计时表达式计算使您可以从“即时”窗口进行代码测试,而不必运行应用程序。宿主进程在设计时表达式计算期间执行此代码。有关更多信息,请参见即时窗口。
调试和宿主进程
Visual Studio 宿主进程提高了调试器性能,并启用了新的调试器功能,如部分信任调试和设计时表达式计算。如果需要,您可以禁用宿主进程。有关更多信息,请参见 如何:禁用宿主进程。以下部分描述用宿主进程和不用宿主进程进行调试的一些差异。
部分信任调试和 Click-Once 安全
部分信任调试需要宿主进程。如果禁用宿主进程,部分信任调试将不工作,即使在“项目属性”的“安全”页上启用了部分信任安全。有关更多信息,请参见 如何:禁用宿主进程 和 如何:调试部分信任的应用程序。
设计时表达式计算
设计时
表达式始终使用宿主进程。如果在“项目属性”中禁用宿主进程,则禁用了类库项目的设计时表达式计算。对于其他项目类型,不禁用设计时表达式计算。相反,Visual Studio 启动实际
可执行文件,并将它用于不用宿主进程的设计时计算。这种差异可能产生不同的结果。
AppDomain.CurrentDomain.FriendlyName 差异
AppDomain.CurrentDomain.FriendlyName 依据是否启用宿主进程返回不同的结果。如果在启用宿主进程的情况下调用 AppDomain.CurrentDomain.FriendlyName,它将返回 应用程序名称.vhost.exe。如果在禁用宿主进程的情况下调用它,它将返回 应用程序名称.exe。
Assembly.GetCallingAssembly().FullName 差异。
Assembly.GetCallingAssembly().FullName 依据是否启用宿主进程返回不同的结果。如果启用宿主进程时调用 Assembly.GetCallingAssembly().FullName,它将返回 mscorlib。如果禁用宿主进程时调用 Assembly.GetCallingAssembly().FullName,它将返回该应用程序名。