当前位置:  开发笔记 > 编程语言 > 正文

vshost.exe文件的目的是什么?

如何解决《vshost.exe文件的目的是什么?》经验,为你挑选了5个好方法。

当我在C#中创建并编译"hello world"应用程序时,除了主exe之外,我在Debug文件夹中得到三个文件(例如HelloWorld.exe)

    HelloWorld.vshost.exe

    HelloWorld.pdb

    HelloWorld.vshost.exe.manifest

这些文件的用途是什么?



1> Jon Skeet..:

VS2005引入了vshost.exe功能(以回答您的评论).

它的目的主要是使调试启动更快 - 基本上已经有一个框架运行的过程,只需准备好在你想要的时候加载你的应用程序.

有关详细信息,请参阅此MSDN文章和此博客文章.


这就是为什么当我从调试器运行Console.Write(System.AppDomain.CurrentDomain.FriendlyName)时,我得到了app.vshost.exe,当我直接从exe运行时,我输出为app.exe
如果存在vschost和.pdb文件用于调试目的,那么当我在Release中编译时,为什么它们仍然包括在内?

2> Daniel Brück..:

.exe - "正常"可执行文件

.vshost.exe - 可执行文件的特殊版本,用于辅助debuging; 有关详细信息,请参阅MSDN

.pdb - 带有调试符号的程序数据库

.vshost.exe.manifest - 一种主要包含库依赖项的配置文件



3> Will Eddins..:

vshost.exe文件是Visual Studio运行的可执行文件(visual studio主机可执行文件).这是链接到Visual Studio并改进调试的可执行文件.

当您将应用程序分发给其他人时,不要使用vshost.exe或.pdb(调试数据库)文件.


VS主机进程仅用于改善debuging - 但它不能实现debuging.

4> SimplyInk..:

另外,您可以为Release版本配置关闭vshost文件的创建,并为Debug启用它.

脚步

项目属性 > 调试 >配置(发布)>禁用Visual Studio宿主过程

项目属性 > 调试 >配置(调试)>启用Visual Studio主机进程

VS2010的屏幕截图

参考

    MSDN如何:禁用主机进程

    MSDN主机进程(vshost.exe)

摘自MSDN如何:禁用主机进程

启用主机进程时,可能会影响对某些API的调用.在这些情况下,必须禁用托管过程以返回正确的结果.

要禁用托管过程

    在Visual Studio中打开可执行项目.不生成可执行文件的项目(例如,类库或服务项目)没有此选项.

    项目菜单上,单击属性.

    单击" 调试"选项卡.

    清除" 启用Visual Studio宿主进程"复选框.

当托管过程被禁用时,几个调试功能不可用或性能下降.有关更多信息,请参阅调试和托管过程.

通常,当托管过程被禁用时:

开始调试.NET Framework应用程序所需的时间增加了.

设计时表达式评估不可用.

部分信任调试不可用.



5> Brian Rasmus..:

我不确定,但我相信这是一个调试优化.但是,我通常将其关闭(请参阅项目的调试属性)并且我没有注意到任何减速并且我看到在调试方面没有任何限制,因此根据Guard的说明,它当然不需要进行调试.

推荐阅读
小妖694_807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有