构build时用代码4退出命令副本 – Visual Studio重新启动解决它
每当我在这里构build我的解决scheme(其中有7个项目)时,我得到了可怕的'命令副本退出代码4'错误,在Visual Studio 2010年版。
这是因为后期制作活动无法完成。
暂时解决这个问题
- 有时:重新启动Visual Studio,我可以构build解决scheme
- 有时候:重新启动Visual Studio和我select的文件pipe理器(Q-Dir 4.37)都可以解决这个问题。
这是后生成事件的样子:
xcopy "$(SolutionDir)Solution Items\References\*.dll" "$(TargetDir)" /Y
当你得到命令副本退出代码[插入值]错误,通常是由于以下原因:
- 读/写权限
- 缺less文件
- 错误的目录
但是 – 显然有时我build立解决scheme时,没有问题。
仅供参考,我在两周前卸载了ReSharper 5.1.1,从那以后Visual Studio一直给我一些错误(其中不能debugging)。 我重新安装了Visual Studio,从那以后工作得更好,但仍然遇到了这个问题。 难道这与一些ReSharper的东西在某个地方?
你有同样的问题,解决了吗? 或者你有任何可能的解决办法吗?
干杯。
我总是发现这是一个文件locking问题。 代码4是不能访问文件。 我find的一个部分解决scheme是使用xcopy的/ C选项(错误时继续)。 不是一个真正的解决scheme,但主要是它已经停止了我的构build失败。
另一个只能在32位上工作的解决scheme是使用解锁工具在复制之前释放文件上的窗口句柄。
编辑:我刚刚意识到,它也可以在64位下工作。
虽然/C
可能会忽略错误,但它可能不是真正的解决scheme,因为可能有必须复制的文件才能使构build成功。
最常见的问题是在预定义的命令标签周围缺less引号(如$TargetDir
)。 当在代码或TFS中创build各种分支和path时,发生这种情况的可能性非常高。
有时如果文件是只读的,也会引起问题。 添加/R
选项以允许复制只读文件。 您可以在以下位置find可用选项的列表:
http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/xcopy.mspx?mfr=true
另一个可能的问题是无法访问底层文件夹。 如果是这样,尝试执行"start xcopy"
而不是"xcopy"
。 这将打开另一个命令窗口,但与pipe理priveleges。
我越过了相同的错误,但这不是由于文件被locking,而是文件丢失。
为什么VS试图复制一个不存在的文件,原因是Post-build事件命令。
我清除后,问题解决了。
更新:
正如@rhughes所评论的,“
真正的问题是如何让命令在这里工作,而不是删除它。
“他绝对是对的。
如果后构build事件包含将构build输出复制到某个目录(通常是最常见的后构build操作)的copy / xcopy命令,则在源目标或目标目标的完整目录path包含文件夹名称空间。 删除目录名称的空间并尝试。
正如许多网站所提到的,这有很多原因。 对我来说,这是由于源和目标(path长度)的长度。 我在命令提示符下尝试了xcopy,我无法input完整的源代码和path(在某些字符不允许input的情况下)。 然后我减less了path长度,并能够运行。 希望这可以帮助。
我也遇到了这个问题。请仔细检查错误窗口中的结果。
在我的情况下,一个拖尾\
正在崩溃xcopy(因为我使用$(TargetDir)
)。 在我的情况下$(SolutionDir)..\bin
。 如果您使用其他输出,则需要进行调整。
另外请注意,如果编译后错误消失,则start xcopy
不会修复它。 它可能刚刚被命令行压制,并没有真正的文件被复制!
你可以btw在命令行中手动执行你的xcopy命令。 在这里执行它们时,你会得到更多的细节,指向正确的方向。
我得到这个错误,因为运行TFS构build服务的用户帐户没有权限写入目标文件夹。 Right-click on the folder-->Properties-->Security
。
这可能发生在多种情况下:
- 当完整的stringpath超过254个字符。
- 当要复制的文件的名称是错误的。
- 目标path错误时。
- 在复制的文件或目标文件夹上设置只读属性时。
我得到这个错误,因为在另一个实例中打开文件。
当我closures文件,并再次build立解决scheme,它被成功复制。
在pipe理员模式下运行VS,它应该工作正常。
在构build完成后,我在XCOPY的情况下面临同样的问题。 在我的情况下,问题是由于在文件夹上设置了READ-ONLY权限而发生的。
我在XCOPY之前添加了attrib -R命令,并解决了问题。
希望它可以帮助别人!
与testing引擎有关的xcopy有同样的错误。 我正在使用VisualStudio Professional 2013.默认情况下testing – >testing设置 – >保持testing执行引擎运行似乎是我的错误代码4与Xcopy的原因。 closures它解决了问题。 执行引擎似乎坚持一些.dll。
我有同样的问题。 VS中一个简单的“清洁解决scheme”清除了错误,但这只是一个临时解决scheme。
我发现将文件的“复制到输出目录”参数设置为“始终复制”似乎清除了locking问题。 虽然现在我有两个文件的副本,需要删除一个。
我有同样的问题。 然而,没有为我工作。 我通过添加解决了这个问题
exit 0
到我的代码。 问题是,当我正在复制文件,有时最后一个文件不能被发现,并且蝙蝠返回一个非零值。
希望这可以帮助别人!
如果您正在运行Windows 7,则可以尝试新的“robocopy”命令:
robocopy "$(SolutionDir)Solution Items\References\*.dll" "$(TargetDir)"
有关robocopy的更多信息可以在这里find。
我面临同样的问题。 我删除了后生成事件,它开始工作。 有时候,当我们添加一些SQL组件时,它也可能会添加后期构build命令。
我使用/ exclude选项使用xcopy来获得类似的结果。 在我的情况下,我发现编辑后构build事件(在命令之后的东西像一个换行符一样无害)并保存项目导致错误发生。 重新保存/ exclude选项中指定的文件将使其再次运行。
当我写一个DLL库时,我使用xcopy命令来复制程序可以find并加载的库。 经过几次开闭程序,在任务pipe理器中还是有一个公开的进程,我没有认出来。
查找可以使用该文件的任何进程并closures它。
什么解决了我的问题 :挖掘到你想要的项目的具体解决scheme,即不是所有项目的整体解决scheme文件。
尝试 – 我尝试了这里提到的所有其他的东西,但无济于事。
我没有看到任何东西在这里,build议这是一个Web应用程序,但我自己经历了这个问题 – 我有两个xcopy命令后生成事件,只有其中一个失败。 有东西locking在文件上,而不是Visual Studio(因为我试图重新启动它。)
唯一可以使用我build立的DLL的其他事情是IIS。 你看,
一个简单的iisreset
为我做了诡计。
我遇到过同样的问题。 这是由于有两次相同的国旗造成的,例如:
如果$(ConfigurationName)== Release(xcopy“$(TargetDir) 。 ”“$(SolutionDir)Deployment \ $(ProjectName)\”/ e / d / i / y / e)
注意“/ e”标志出现两次。 删除重复解决了这个问题。
- 默认的Visual Studio 2010和2008字体
- 无法从Microsoft.Web.Publishing.Tasks.dll加载TransformXml任务
- Visual Studio中高亮variables的环境设置
- Visual Studio Solutions / Multiple project:如何在多个C ++项目中有效地传播项目属性
- 如何重置Visual Studio 2010/2012/2013/2015/2017中的缩放
- 在Visual Studio中查看多个项目/解决scheme
- 如何在Visual Studio编辑器中禁用视觉“点”
- closures项目后,在Visual Studio中打开起始页面?
- C在Visual Studio中编程