Visual studio 2012 应用程序可执行文件名与vshost可执行文件名不同

Visual studio 2012 应用程序可执行文件名与vshost可执行文件名不同,visual-studio-2012,msbuild,visual-studio-debugging,csproj,Visual Studio 2012,Msbuild,Visual Studio Debugging,Csproj,我的vshost.exe文件名与实际的application.exe文件名不同,这导致我无法调试应用程序 设置如下所示: - MySolution - Installer.Release - Installer.Debug - Installer.Testing - MyApplication 我正在使用Visual Studio 2012、.NET 4.0和InstallShield LE 现在,出于我无法控制的原因,决定应用程序可执行名称应包含以下环境:My

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

设置如下所示:

- MySolution
    - Installer.Release
    - Installer.Debug
    - Installer.Testing
    - MyApplication
我正在使用Visual Studio 2012、.NET 4.0和InstallShield LE

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

通过将
.csproj
文件修改为以下内容,可以轻松完成此操作:

<AssemblyName>MyApplication (Release)</AssemblyName>
<AssemblyName Condition="'$(Configuration)' == 'Debug'">MyApplication (Debug)</assemblyName>
<AssemblyName Condition="'$(Configuration)' == 'Testing'">MyApplication (Testing)</AssemblyName>
到目前为止还不错

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

MyApplication (Debug).exe
MyApplication (Debug).exe.config
MyApplication (Debug).vshost.exe
MyApplication (Debug).vshost.manifest
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)
。因此,有些事情迫使我将
调试
配置用于
测试
配置。但是什么呢

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


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

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

转到Project+属性的“调试”选项卡,取消选中“启用Visual Studio宿主进程”选项