在我们的解决方案中,我们将一个测试需要的文件的相对路径指定为 -
../../../ TestManager中/存根/ TestData.xml
现在,在本地计算机上运行测试时,这可以正常工作。但是,在TFS构建服务器上,它无法在运行测试时找到存根的xml文件。
如果我将xml文件的“复制到输出目录”属性更改为“如果更新则复制”我得到构建失败 - 该目录不为空。
有人可以建议我该怎么做才能解决这个问题?
答案 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" />
...