命令" XCOPY"在使用新构建定义构建签入时退出代码4错误

时间:2013-05-08 12:42:17

标签: visual-studio-2012 build-automation xcopy

我正在使用TFS2012。我已经创建了一个构建定义来构建每个checkIn uding VS2012。在我的项目的Vs2008中,我使用XCOPY创建了一个预构建事件,将一些文件从解决方案目录复制到另一个文件夹。但是在我执行CheckIn Build失败后出现以下错误

Summary
Debug | Any CPU
 1 error(s), 0 warning(s)
$/test/coding_files/cal_reg.sln - 1 error(s), 0 warning(s), View Log File
 C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets (895): The command "XCOPY "C:\Builds\1\test\New Build Definition 1\Sources\coding_files\*.*" "\\pc97\D\" /E /Y /R /K" exited with code 4.
 $/test/coding_files/cal_reg.sln compiled
 No Test Results
 No Code Coverage Results
Other Errors and Warnings
 1 error(s), 0 warning(s)
 Exception Message: MSBuild error 1 has ended this build. You can find more specific information about the cause of this error in above messages. (type BuildProcessTerminateException)
Exception Stack Trace:    at System.Activities.Statements.Throw.Execute(CodeActivityContext context)
   at System.Activities.CodeActivity.InternalExecute(ActivityInstance instance, ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.ActivityInstance.Execute(ActivityExecutor executor, BookmarkManager bookmarkManager)
   at System.Activities.Runtime.ActivityExecutor.ExecuteActivityWorkItem.ExecuteBody(ActivityExecutor executor, BookmarkManager bookmarkManager, Location resultLocation)

为什么会这样?在构建之前如何执行复制命令?

5 个答案:

答案 0 :(得分:3)

请注意,将/ C开关添加到xcopy不会修复错误。它只是意味着如果xcopy遇到一个文件的错误并且还有其他文件要复制,那么整个复制过程就不会失败。任何无法复制的东西都会失败,并继续使用其他可以复制的文件。

在某些情况下,这可能是理想的行为,但它也可能是危险的,隐藏实际的复制问题取决于您实现它的方式。

答案 1 :(得分:1)

而不是xcopy,请使用start xcopy /Y /R。这对我有用。

答案 2 :(得分:1)

我通过另一种方式复制来解决这个问题。 使用文本编辑器打开.csproj文件,并修改文件末尾的“AfterBuild”部分:

<Target Name="AfterBuild">
    <ItemGroup>
        <MyFile Include="myfile.xml"/>
    </ItemGroup>
    <Copy SourceFiles="@(MyFile)" DestinationFolder="$(OutputPath)" />
</Target>

我从未遇到过这种复制方式的问题,而且是跨平台的方式

答案 3 :(得分:0)

尝试重新启动Visual Studio。这可能是暂时的问题。 以下链接将描述不同的方式 Command copy exited with code 4 when building - Visual Studio restart solves it

答案 4 :(得分:-1)

在powershell中运行相同的xcopy命令我看到了“共享冲突”。添加/ C到xcopy修复了问题。