【问题标题】:Copy Failed during post-build process在构建后过程中复制失败
【发布时间】:2011-12-06 13:57:48
【问题描述】:

我正在使用 Visual Studio 2008 编写一个 ASP.NET Web 应用程序。 该项目与 Visual Studio 提供的默认空项目基本保持不变,除了:

  • 在 Properties->Build->Output 中,“XML 文档文件”被选中并设置为“bin\MyProject.XML”
  • 在属性->构建事件中,“构建后事件命令行:”设置为copy /y "$(TargetDir)$(TargetName).XML" "C:\TEMP\"

当我第一次构建项目或重新构建项目时,构建过程成功完成。 但是,如果我在此之后的任何时间尝试构建,构建过程将失败并显示以下消息:

------ Build started: Project: MyProject, Configuration: Debug Any CPU ------
MyProject -> C:\Projects\MyProject\MyProject\bin\MyProject.dll
copy /y "C:\Projects\MyProject\MyProject\bin\MyProject.XML" "C:\TEMP\"
The system cannot find the file specified.
c:\WINDOWS\Microsoft.NET\Framework\v3.5\Microsoft.Common.targets(3397,13): error MSB3073: The command "copy /y "C:\Projects\MyProject\MyProject\bin\MyProject.XML" "C:\TEMP\"" exited with code 1.
Done building project "MyProject.csproj" -- FAILED.
========== Build: 0 succeeded or up-to-date, 1 failed, 0 skipped ==========

我确定语法是正确的,因为我可以在命令窗口中执行构建后命令:

C:\>copy /y "C:\Projects\MyProject\MyProject\bin\MyProject.XML" "C:\TEMP\"
        1 file(s) copied.

当我手动执行该命令时,该命令有效,那么为什么在构建过程中它会失败?

【问题讨论】:

    标签: visual-studio-2008 post-build-event


    【解决方案1】:

    当 XML 文档文件生成在与指定为 输出路径 的目录相同的目录中时,Visual Studio 使用的底层 msbuild 任务存在缺陷,用于中间构建。

    要修复它,你需要指定一个不同的目录,例如,像这样:

    并相应地更改您的构建后复制命令,如下所示:

    copy /y "C:\Projects\MyProject\MyProject\docbin\Debug\MyProject.XML" "C:\TEMP\"
    

    【讨论】:

    • 谢谢,你解决了我的问题!你也给了我足够的信息来找到和我有同样问题的其他人。 Here on Stackoverflow,以及 Visual Studio 的 Feedback site
    猜你喜欢
    • 1970-01-01
    • 2020-09-23
    • 1970-01-01
    • 2018-03-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 2020-08-11
    相关资源
    最近更新 更多