1

我无法将 TFS CI 构建的输出定向到默认位置以外的目录位置。我有 2 个数据库项目与我们的大型 .net 项目集成。一切都按照我们在本地 PC 上的预期构建和执行。文件最终位于数据库项目 sql/Debug 或 Release 文件夹下的预期位置。在我们的 TFS 构建服务器上,项目会正确构建和生成所有内容,但会将所有数据库项目输出文件(.SQL、.schema 等)转储到 TFS 输出目录的根目录中。那里变得非常混乱,因为有几个项目似乎导致了这种情况的发生。

目前我只关心数据库项目。有没有办法在项目的部署或构建定义(或我没想到的任何其他地方)中指定这些文件的输出位置?

谢谢

4

1 回答 1

0

一个简单的方法是创建一个在编译过程结束时运行的 MSbuild 项目。

创建名为 DropTidy.Proj 的文件,然后添加如下内容。

<Project DefaultTargets="CopySQLReleaseFiles" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="3.5">

  <Target Name="CopySQLReleaseFiles">

    <ItemGroup>
      <SqlBuildOutput Include="$(OutDir)\*.sql" />
    </ItemGroup>

    <Copy SourceFiles="@(SqlBuildOutput)" DestinationFolder="$(OutDir)\SQL" />

  </Target>

</Project>

上面的示例将所有扩展名为“sql”的文件复制到名为“SQL”的文件夹中。$(OutDir) 是团队构建使用的工作文件夹,与构建代理的构建工作区中的“二进制”文件夹相关

将文件签入 TFS,然后将其添加到 Team Build Process 中的“要构建的项目”列表中。确保它是列表中的最后一个“解决方案”,以便它在构建中的其他解决方案之后运行。还要确保将 proj 文件签入的文件夹是构建工作区的一部分。

运行您的构建,您应该会在放置位置看到一个名为 SQL 的新文件夹。

于 2012-04-16T17:32:08.643 回答