Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/visual-studio/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 解决;命令";taskkill/F/IM MyApp.vshost.exe“;退出,代码为128“;错误_Visual Studio_Visual Studio 2010_Command Line_Build - Fatal编程技术网

Visual studio 解决;命令";taskkill/F/IM MyApp.vshost.exe“;退出,代码为128“;错误

Visual studio 解决;命令";taskkill/F/IM MyApp.vshost.exe“;退出,代码为128“;错误,visual-studio,visual-studio-2010,command-line,build,Visual Studio,Visual Studio 2010,Command Line,Build,上下文 调试(使用调试菜单F5)Visual Studio解决方案时,将创建一个名为MyApp.vshost.exe的进程。当您不小心地停止调试时-我的意思是使用stop debug菜单SHIFT+F5,而不是等待出现类似Application.Exit()这样的代码行-此进程不会终止 有时,当您稍后再次开始调试应用程序时,会出现一条错误消息,指出该文件(显然,它是调试所使用的文件:bin\debug\MyApp.vshost.exe)已在使用中 这就是为什么我在构建事件中添加了以下命令行:ta

上下文
调试(使用调试菜单F5)Visual Studio解决方案时,将创建一个名为
MyApp.vshost.exe
的进程。当您不小心地停止调试时-我的意思是使用stop debug菜单SHIFT+F5,而不是等待出现类似
Application.Exit()
这样的代码行-此进程不会终止

有时,当您稍后再次开始调试应用程序时,会出现一条错误消息,指出该文件(显然,它是调试所使用的文件:
bin\debug\MyApp.vshost.exe
)已在使用中

这就是为什么我在构建事件中添加了以下命令行:
taskkill/F/IM MyApp.vshost.exe

问题
当MyApp.vshost.exe进程不存在时,Visual Studio有时会在生成时抛出错误,从而阻止生成应用程序:

Error c:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.Common.targets
The command "taskkill /F /IM MyApp.vshost.exe" exited with code 128.
我找到的唯一现有解决方案是删除生成事件

问题
有没有办法在不删除生成事件的情况下解决错误消息

编辑
我认为最好的解决方案是检索命令的返回码(
errorlevel
),如果它等于128,则返回0。是否可以在项目的生成事件中执行此操作?

作为临时措施,您可以禁用Visual Studio主机进程:

禁用托管进程

在Visual Studio中打开项目

在“项目”菜单上,单击“属性”

单击调试选项卡

清除“启用Visual Studio宿主进程”复选框

这样做的副作用可能是可取的,也可能不是可取的:

通常,当主机进程被禁用时:

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

设计时表达式计算不可用

部分信任调试不可用


是否以管理员身份运行,并具有IDE的完全权限?(我知道这是微软很久以前提出的)

MyApp.vshost.exe是。此过程的目的是改善调试体验。如果您自己终止此进程,VisualStudio将重新创建它。如果您想摆脱它,可以在项目的调试属性中关闭宿主进程(如图所示):

您将所经历的错误描述为“流程已在使用”。我想我自己并没有经历过这种情况,但在一台工作PC上,调试后构建时遇到了很大的麻烦。似乎
MyApp.exe
已被锁定,无法覆盖(“文件已在使用”,而不是“进程”),从而导致生成失败。据信,病毒扫描程序(Microsoft Forefront)导致了这些问题,但在公司环境中,我无法关闭扫描程序来验证我的假设


在许多情况下,禁用托管进程不会对您的调试体验产生明显影响。

您能详细介绍一下您的应用程序正在做什么吗?例如,您是否通过Office互操作位与Excel或Word等进程外应用程序进行交互?@Kev:我的所有应用程序都有问题—Windows窗体项目和Windows服务,有些应用程序无法使用Excel或Word。我拥有的最简单的应用程序是一个在MSSQL数据库中使用计时器检查并执行简单任务的服务。任何解决方案,使用msbuild:msbuild:warning MSB3073时都会出现类似问题:命令“DEL”C:\Clientes**“/q/f/s”退出,代码为128。@Kiquenet:请参阅我接受的答案。不,没有以管理员身份运行IDE。没错,是这样的“文件已经在使用中”而不是“进程”。我编辑了我的Q。这对我来说很有效,除了我有问题,直到我移除了双管道,并将其变成了单管
|
|
,我建议使用条件测试:
taskkill/f/fi”pid gt 0“/im MyApp.vshost.exe
此处相同。在VS 2015中,单管工程taskkill/f/im excel.exe 2>&1 | exit/B 0理论上应该是双管:“如果符号前面的命令失败,双管(| |)会导致此符号后面的命令运行”。从…起
taskkill /F /IM MyApp.vshost.exe 2>&1 || exit /B 0