Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 我可以从TFS CI Build更改VS2010数据库项目的部署脚本的位置吗_Database_Visual Studio 2010_Tfs_Continuous Integration_Database Project - Fatal编程技术网

Database 我可以从TFS CI Build更改VS2010数据库项目的部署脚本的位置吗

Database 我可以从TFS CI Build更改VS2010数据库项目的部署脚本的位置吗,database,visual-studio-2010,tfs,continuous-integration,database-project,Database,Visual Studio 2010,Tfs,Continuous Integration,Database Project,我无法将TFS CI生成的输出定向到默认位置以外的目录位置。 我有两个数据库项目与我们的大型.net项目集成。所有内容都会在本地PC上生成并执行我们期望的操作。文件会在数据库项目sql/Debug或Release文件夹下的预期位置结束。 在我们的TFS构建服务器上,项目正确地构建和生成所有内容,但它将所有数据库项目输出文件(.SQL、.schema等)转储到TFS输出目录的根目录中。因为有几个项目似乎导致了这种情况的发生,所以那里变得相当混乱 目前我只关心数据库项目。有没有一种方法可以在项目的部

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

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


多谢

一种简单的方法是创建一个在编译过程结束时运行的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)是team build使用的工作文件夹,它与构建代理上的构建工作区中的“二进制文件”文件夹相关

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

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