如何在TFS生成放置位置中包含文件?

如何在TFS生成放置位置中包含文件?,tfs,msbuild,Tfs,Msbuild,在我们的解决方案中,我们将测试所需的文件的相对路径指定为- ../../../TestManager/Stubs/TestData.xml 现在,当在本地机器上运行测试时,这可以正常工作。但是,在TFS构建服务器上,运行测试时无法找到存根xml文件 如果我将xml文件的属性“Copy to Output Directory”更改为“Copy If newer”,则生成失败-目录不是空的 有人能建议我如何解决这个问题吗?据我所知,您的testdata.xml没有复制到服务器上的构建目录,您必须将文

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

../../../TestManager/Stubs/TestData.xml

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

如果我将xml文件的属性“Copy to Output Directory”更改为“Copy If newer”,则生成失败-目录不是空的


有人能建议我如何解决这个问题吗?

据我所知,您的testdata.xml没有复制到服务器上的构建目录,您必须将文件拖放到解决方案资源管理器中,并从那里引用它。重要的是,您的.csproj了解该文件,它将在文件体中生成如下内容:

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

因此VS知道需要将该文件复制到您的构建目录。我希望这有助于…

指定放置位置:

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

然后你可以使用
$(DropLocation)\…
这一次,我在msdn上找到了答案

我猜你是在分享这个版本 位置,以便人们检查建造。 如果是这样的话,听起来好像有人 查看尝试创建的生成文件夹 当CoreClean被激发时移除。 我经常看到这一点(大多数时候都是这样) 我的错,因为我在看 构建文件夹,然后点击“构建” 项目“关闭前关闭它。)锁定 关闭构建文件夹,这样就没有人可以 查看它们并在生成失败时复制它们 所有文件夹都共享,因此没有 可以访问生成文件夹- 杰森·琼塔


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

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

...

您找到解决方案了吗?我有同样的问题…请用绿色复选标记将此答案(或其他答案)标记为正确答案。它允许其他用户快速、轻松地查看是什么解决了您的问题。