我们有几个项目有"模板"所有文件夹都被复制到相同的"模板"我们的共享bin目录中的文件夹。我们间歇性地得到xcopy失败。
C:\ Program Files(x86)\ MSBuild \ 12.0 \ bin \ Microsoft.Common.CurrentVersion.targets(4429,5):错误MSB3073:命令" xcopy / s / y / r&#34 ; E:\ Source \ DotNet \ Service Providers \ ActionScheduler \ Templates" " E:\ Source \ DotNet \ bin \ x64 \ Release \ Service Providers .. \ Templates \""退出代码4
这些是在devenv中运行的后期构建步骤。
我想知道是否有人建议减少或消除这些错误。
也许有一种替代xcopy更强大的选择?
复制的所有模板文件夹都有一个子文件夹" EN"以及该目录下的一些文件。
其他信息:
<message>98> Sharing violation</message>
<message>98> 0 File(s) copied</message>
<message>98> Unable to create directory - E:\Source\DotNet\bin\x64\Release\Templates</message>
<message>98>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4429,5): error MSB3073: The command "xcopy /s /y /r "E:\Source\DotNet\Service Providers\ActionScheduler\Templates" "E:\Source\DotNet\bin\x64\Release\Service Providers\..\Templates\"" exited with code 4.</message>
添加/ d后仍然出现错误。我还尝试在项目的预建步骤中预先创建文件夹,以便更早地构建。但我仍然遇到以下错误:
98> Sharing violation
98> Unable to create directory - E:\Source\DotNet\bin\x64\Release\Templates
98> 0 File(s) copied
98>C:\Program Files (x86)\MSBuild\12.0\bin\Microsoft.Common.CurrentVersion.targets(4429,5): error MSB3073: The command "xcopy /s /y /r /d "E:\Source\DotNet\Service Providers\ActionScheduler\Templates" "E:\Source\DotNet\bin\x64\Release\Service Providers\..\Templates\"" exited with code 4.
答案 0 :(得分:2)
发生此错误时,您需要在“输出”窗口中查找来自XCopy的诊断消息。如果没有这种诊断,“间歇性”很难解释。
肯定有一种很好的方法可以大大减少出错的可能性。您无缘无故地反复复制这些文件。添加/D
选项,仅在文件尚不存在或已更改时进行复制。所以你基本上只复制这些文件一次又不复制,不能以这种方式失败:)
编辑后:是的,确实看起来像两个后期版本试图同时复制同一个文件。不幸的时机,反恶意软件有一个诀窍,它可以在扫描文件时延长它。你需要解决这个问题,一个就足够了。 非常高赔率/ D已经修复了它。
答案 1 :(得分:0)
代码4表示: “发生初始化错误。内存或磁盘空间不足,或者您在命令行中输入了无效的驱动器名称或语法无效。”
是E:\ Source \ DotNet \ bin \ x64 \ Release \ Service Providers .. \ Templates \
行? dotdot ???
答案 2 :(得分:0)
如果您有多个项目构建名为支持文件的相同输出,则可以尝试关闭并行构建。 MSDN link for setting this option
然而,这看起来像是一个系统范围的设置,不仅仅是为了该项目。作为最后的手段,您可以通过设置&#34;复制到输出目录&#34;来尝试停止复制除一个项目以外的所有文件。到&#34;不要复制&#34;。
答案 3 :(得分:0)
我有一个非常类似的问题,从MSDN文档中我们添加了以下开关。在我的情况下,我的转换似乎可以解决问题。
Xcopy / Y / I / S