49

当我使用 VS2008 编译应用程序时,有时会得到 2 个相同的配置文件:

  • *.exe.config
  • *.vshost.exe.config

后一个是干什么用的?

4

4 回答 4

28

这是一篇关于 vshost 进程及其目的的博客文章。

http://blogs.msdn.com/dtemp/archive/2004/08/17/215764.aspx

于 2008-11-12T19:18:06.450 回答
17

在 VS 中调试时,您的应用程序将被称为 [appname].vshost.exe,因此 .vshost.exe.config 文件是 .net 运行时查找程序配置的位置。

于 2008-11-12T18:45:45.737 回答
2

我注意到有关此行为的其他内容。

虽然 VS 将创建一个名为 [appname].vshost.exe.config 的配置,但 API 调用:

var s = AppDomain.CurrentDomain.SetupInformation.ConfigurationFile

不返回此名称,而是返回:[appname].config

这是使用VS2010。在 VS2008 中未检查

于 2011-08-31T06:56:56.497 回答
2

此文件的唯一目的是帮助调试和托管 Process。Visual Studio 托管进程提高了调试器的性能。它支持新的调试器功能,例如部分信任调试和设计时表达式评估。

如果禁用托管进程,即使在项目属性的安全页面上启用了部分信任安全,部分信任调试也将不起作用。

您可以通过项目菜单禁用它 -> 单击属性 -> 调试选项卡 -> 清除启用 Visual Studio 托管进程复选框。设计时表达式总是使用宿主进程。在项目属性中禁用宿主进程会禁用类库项目的设计时表达式评估。

对于其他项目类型,不会禁用设计时表达式评估。相反,Visual Studio 会启动实际的可执行文件并将其用于设计时评估,而无需托管进程。

于 2018-10-25T14:22:37.910 回答