当我在C#中创建并编译“hello world”应用程序时,除了主exe之外,我在Debug文件夹中得到三个文件(例如HelloWorld.exe)
HelloWorld.vshost.exe
HelloWorld.pdb
HelloWorld.vshost.exe.manifest
这些文件的用途是什么?
VS2005引入了vshost.exe功能(以回答您的评论) .
它的目的主要是使调试启动更快 - 基本上已经有一个框架运行的过程,只需准备好在你想要的时候加载你的应用程序 .
有关更多信息,请参见this MSDN article和this blog post .
.exe - '普通'可执行文件
.vshost.exe - 可执行文件的特殊版本,用于辅助debuging;有关详细信息,请参阅MSDN
.pdb - 带有调试符号的Program Data Base
.vshost.exe.manifest - 一种configuration file,主要包含对库的依赖
vshost.exe文件是Visual Studio运行的可执行文件(visual studio主机可执行文件) . 这是链接到Visual Studio并改进调试的可执行文件 .
当您将应用程序分发给其他人时,不要使用vshost.exe或.pdb(调试数据库)文件 .
添加后,您可以关闭 Release 构建配置的vshost文件的创建,并为 Debug 启用它 .
Steps
Project Properties > Debug >配置(发布)>禁用Visual Studio主机进程
Project Properties > Debug >配置(调试)>启用Visual Studio主机进程
Reference
MSDN How to: Disable the Hosting Process
MSDN Hosting Process (vshost.exe)
摘自MSDN How to: Disable the Hosting Process
启用主机进程时,可能会影响对某些API的调用 . 在这些情况下,必须禁用托管过程以返回正确的结果 .
要禁用托管过程
在Visual Studio中打开可执行项目 . 不生成可执行文件的项目(例如,类库或服务项目)没有此选项 .
在 Project 菜单上,单击 Properties .
单击 Debug 选项卡 .
清除 Enable the Visual Studio hosting process 复选框 .
当托管过程被禁用时,几个调试功能不可用或性能下降 . 有关更多信息,请参阅Debugging and the Hosting Process .
通常,禁用托管进程时:开始调试.NET Framework应用程序所需的时间会增加 . 设计时表达式评估不可用 . 部分信任调试不可用 .
我不确定,但我相信这是一个调试优化 . 但是,我通常将其关闭(请参阅项目的调试属性)并且我没有注意到任何减速并且我看到在调试方面没有任何限制,因此根据Guard的说明,它当然不需要进行调试 .
它似乎是一个长期运行的调试框架过程(减少加载时间?) . 我发现当您从调试器启动应用程序两次时,通常会使用相同的vshost.exe进程 . 它只是首先卸载所有用户加载的DLL . 如果您正在使用来自托管进程的API挂钩,这会产生奇怪的结果 .
6 回答
VS2005引入了vshost.exe功能(以回答您的评论) .
它的目的主要是使调试启动更快 - 基本上已经有一个框架运行的过程,只需准备好在你想要的时候加载你的应用程序 .
有关更多信息,请参见this MSDN article和this blog post .
.exe - '普通'可执行文件
.vshost.exe - 可执行文件的特殊版本,用于辅助debuging;有关详细信息,请参阅MSDN
.pdb - 带有调试符号的Program Data Base
.vshost.exe.manifest - 一种configuration file,主要包含对库的依赖
vshost.exe文件是Visual Studio运行的可执行文件(visual studio主机可执行文件) . 这是链接到Visual Studio并改进调试的可执行文件 .
当您将应用程序分发给其他人时,不要使用vshost.exe或.pdb(调试数据库)文件 .
添加后,您可以关闭 Release 构建配置的vshost文件的创建,并为 Debug 启用它 .
Steps
Project Properties > Debug >配置(发布)>禁用Visual Studio主机进程
Project Properties > Debug >配置(调试)>启用Visual Studio主机进程
Reference
MSDN How to: Disable the Hosting Process
MSDN Hosting Process (vshost.exe)
摘自MSDN How to: Disable the Hosting Process
启用主机进程时,可能会影响对某些API的调用 . 在这些情况下,必须禁用托管过程以返回正确的结果 .
要禁用托管过程
在Visual Studio中打开可执行项目 . 不生成可执行文件的项目(例如,类库或服务项目)没有此选项 .
在 Project 菜单上,单击 Properties .
单击 Debug 选项卡 .
清除 Enable the Visual Studio hosting process 复选框 .
当托管过程被禁用时,几个调试功能不可用或性能下降 . 有关更多信息,请参阅Debugging and the Hosting Process .
我不确定,但我相信这是一个调试优化 . 但是,我通常将其关闭(请参阅项目的调试属性)并且我没有注意到任何减速并且我看到在调试方面没有任何限制,因此根据Guard的说明,它当然不需要进行调试 .
它似乎是一个长期运行的调试框架过程(减少加载时间?) . 我发现当您从调试器启动应用程序两次时,通常会使用相同的vshost.exe进程 . 它只是首先卸载所有用户加载的DLL . 如果您正在使用来自托管进程的API挂钩,这会产生奇怪的结果 .