【问题标题】:Application executable name is different from vshost executable name应用程序可执行文件名与 vshost 可执行文件名不同
【发布时间】:2014-03-19 22:47:54
【问题描述】:

我的 vshost.exe 文件名与我的实际 application.exe 文件名不同,导致我无法调试应用程序。

设置如下:

- MySolution
    - Installer.Release
    - Installer.Debug
    - Installer.Testing
    - MyApplication

我正在使用 Visual Studio 2012、.NET 4.0 和 InstallShield LE。

现在,由于我无法控制的原因,决定应用程序可执行文件名称应包含环境:MyApplication (Release).exeMyApplication (Debug).exeMyApplication (Testing).exe

这很容易通过将.csproj 文件修改为以下内容来完成:

<AssemblyName>MyApplication (Release)</AssemblyName>
<AssemblyName Condition="'$(Configuration)' == 'Debug'">MyApplication (Debug)</assemblyName>
<AssemblyName Condition="'$(Configuration)' == 'Testing'">MyApplication (Testing)</AssemblyName>

Debug 中构建应用程序时,它会在我的bin/Debug 文件夹中生成以下文件:

MyApplication (Debug).exe
MyApplication (Debug).exe.config
MyApplication (Debug).vshost.exe
MyApplication (Debug).vshost.manifest

到目前为止一切顺利。

Testing 中构建应用程序时,它会在我的bin/Testing 文件夹中生成以下文件:

MyApplication (Testing).exe
MyApplication (Testing).exe.config
MyApplication (Debug).vshost.exe
MyApplication (Debug).vshost.manifest

如您所见,生成的 vshost 文件命名不同,导致 Visual Studio 在尝试调试时抛出以下错误:

Visual Studio 无法启动调试,因为调试目标 'D:\Code\MySolution\MyApplication\bin\Testing\MyApplication (Debug).exe' 不见了。请构建项目并重试,或设置 OutputPath 和 AssemblyName 属性适当地指向正确的 目标程序集的位置。

有趣的是,如果我将Debug 配置的AssemblyName 更改为MyApplication (Foo),那么Testing 文件夹中的vhost 文件也将重命名为MyApplication (Foo)。所以有些东西迫使我在Debug 配置上使用我的Debug 配置。但是什么?

目前我可以通过启动应用程序然后附加 Visual Studio 调试器来解决这个问题,但这在浪费我的时间。构建安装程序时也没有问题,因为 vshost 文件被简单地忽略了。

到目前为止,Google 并没有真正提供帮助。大多数搜索结果都解释了 vshost 文件是什么以及它是如何工作的,但这不是我需要的。我需要知道为什么 vshost 文件的命名不同以及如何解决这个问题。

【问题讨论】:

    标签: visual-studio-2012 msbuild visual-studio-debugging csproj


    【解决方案1】:

    另一种解决方法是禁用 vshost 选项:

    转到项目 + 属性,调试选项卡,取消选中“启用 Visual Studio 托管进程”选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-17
      • 2015-02-28
      • 2013-02-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多