如何在TFS Build Drop Location中包含文件?

时间:2011-05-12 06:26:14

标签: tfs msbuild

在我们的解决方案中,我们将一个测试需要的文件的相对路径指定为 -

../../../ TestManager中/存根/ TestData.xml

现在,在本地计算机上运行测试时,这可以正常工作。但是,在TFS构建服务器上,它无法在运行测试时找到存根的xml文件。

如果我将xml文件的“复制到输出目录”属性更改为“如果更新则复制”我得到构建失败 - 该目录不为空。

有人可以建议我该怎么做才能解决这个问题?

4 个答案:

答案 0 :(得分:2)

有一次,我在msdn上找到了答案!

  

我的猜测是你在分享这个版本   位置所以人们检查建设。   如果是这样,听起来就像有人一样   查看尝试的构建文件夹   CoreClean被解雇时删除。   我看到了很多(大部分时间都是这样的   我的错,因为我正在看着   构建文件夹,然后点击“构建   项目“关闭之前。”锁定   在构建文件夹下,所以没有人可以   查看它们和构建失败副本   所有文件夹共享所以没有   一个人可以访问构建文件夹。 -   Jason Gionta

     

http://social.msdn.microsoft.com/Forums/en/tfsbuild/thread/6d2fa8f2-4a0d-4d9b-9797-c2f4f5c21e00

答案 1 :(得分:0)

根据我的理解,您的testdata.xml不会被复制到服务器上的构建目录中,您必须将文件拖放到解决方案资源管理器中并从那里引用它。重要的是你的.csproj知道文件,它会在文件体中产生这样的东西:

  <ItemGroup>
    <Content Include="TestData.xml" />
  </ItemGroup>

以便VS知道它需要将该文件复制到您的构建目录。我希望这有帮助...

答案 2 :(得分:0)

指定放置位置:

<DropLocation>\\BuildServer\BuildDrops\TeamProject\Project</DropLocation>

然后,您可以使用$(DropLocation)\...

答案 3 :(得分:0)

您可以在.csproj文件的AfterBuild事件中添加复制命令。 例如:

<Target Name="AfterBuild" Condition="$(Deploy)=='True'">
    <ItemGroup>
    <Message Text="Copying files to $(WebProjectOutputDir) " />
    <Copy SourceFiles="$(SolutionDir)$(ProjectName)\AutoMapper.dll" DestinationFiles="$(WebProjectOutputDir)\AutoMapper.dll" />
...