- HelloWorld.vshost.exe
- HelloWorld.pdb
- HelloWorld.vshost.exe.manifest
.exe - 普通的可执行文件
.vshost.exe - 一个特殊版本的可执行文件,用于辅助调试;有关详细信息,请参见MSDN
.pdb - 包含调试符号的程序数据库Program Data Base
.vshost.exe.manifest - 一种配置文件,主要包含对库的依赖项
vshost.exe文件是Visual Studio的可执行文件(Visual Studio宿主可执行文件)。这个可执行文件链接到Visual Studio并且可以提高调试效率。
当您将应用程序分发给其他人时,不需要使用vshost.exe或.pdb(调试数据库)文件。
此外,您可以关闭在Release构建配置中创建vshost文件的选项,并将其启用于Debug。
步骤
参考资料
当启用托管进程时,对某些 API 的调用可能会受到影响。在这种情况下,需要禁用托管进程以返回正确的结果。
要禁用托管进程:
当禁用托管过程时,会导致一些调试功能不可用或性能下降。有关更多信息,请参阅调试和托管过程。
通常情况下,禁用托管过程会导致以下问题:
- 启动调试 .NET Framework 应用程序所需时间增加。
- 设计时表达式求值不可用。
- 部分信任调试不可用。
我不确定,但我认为它是一种调试优化。然而,通常我会关闭它(请参见项目的调试属性),并且我没有注意到任何减速或调试方面的限制。
这似乎是一个长时间运行的框架进程,用于调试(以减少加载时间?)。我发现当你从调试器两次启动应用程序时,通常会使用相同的vshost.exe进程。它只会首先卸载所有用户加载的DLL。如果你在托管进程中尝试API钩子,它会做一些奇怪的事情。