代码之家  ›  专栏  ›  技术社区  ›  Bob Palmer

尝试复制文件时团队生成2008/MSBuild复制任务引发错误

  •  1
  • Bob Palmer  · 技术社区  · 14 年前

        <CreateItem
             Include="\\BuildServer\Build_Temp\SomeRootDirectory\**\*">
            <Output
               TaskParameter ="Include"
               ItemName ="FilesToCopy"/>
        </CreateItem>
    

    让我的系统知道我的QA服务器位于:

        <CreateProperty
              Value="\\QAWebServer\Websites\MySite">
            <Output
                TaskParameter="Value"
                PropertyName ="MyDropLocation"/>
        </CreateProperty>
    

        <RemoveDir Directories="\\QAWebServer\Websites\MySite"  />
        <MakeDir Directories="\\QAWebServer\Websites\MySite"  />
    

    最后,我执行一个复制任务:

        <Copy
                SourceFiles="@(FilesToCopy)"
                DestinationFiles="@(FilesToCopy->'$(MyDropLocation)\%(RecursiveDir)%(Filename)%(Extension)')"
                OverwriteReadOnlyFiles="True"/>
    

    然后,当它试图复制文件时,我得到结果错误。有趣的是,有些人成功了,有些人没有(在本例中,它看起来像是我刚才创建的目录根目录中的几乎唯一的一个):

      C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Import.swf" to "\\QAWebServer\Websites\MySite\Import.swf". Access to the path '\\QAWebServer\Websites\MySite\Import.swf' is denied.
      C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Incomplete.swf" to "\\QAWebServer\Websites\MySite\Incomplete.swf". Access to the path '\\QAWebServer\Websites\MySite\Incomplete.swf' is denied.
      C:\Build_Temp\QABuild\BuildType\TFSBuild.proj(690,3): error MSB3021: Unable to copy file "\\BuildServer\Build_Temp\SomeRootDirectory\Index.html" to "\\QAWebServer\Websites\MySite\Index.html". Access to the path '\\QAWebServer\Websites\MySite\Index.html' is denied.
    

    我已经验证了对文件系统的访问权限(每个人都有权创建/修改/etc),并且将文件添加到\QAWebServer\Websites\MySite的子目录结构中没有问题,只是(基本上)添加到根目录。

    1 回复  |  直到 9 年前
        1
  •  1
  •   Bob Palmer    14 年前

    我们最终不得不通过切换到XCopy任务来解决这个问题。

    <Exec Command="xcopy /E /R /Y \\buildMachine\Build_Temp\BuildSource
     \\QAWebServer\Websites\MySite"/>