我可以从 TFS CI Build 更改 VS2010 数据库项目的部署脚本的位置吗
Posted
技术标签:
【中文标题】我可以从 TFS CI Build 更改 VS2010 数据库项目的部署脚本的位置吗【英文标题】:Can I change the location of the deployment script for VS2010 database project from TFS CI Build 【发布时间】:2012-04-10 22:27:29 【问题描述】:我无法将 TFS CI 构建的输出定向到默认目录位置以外的目录位置。 我有 2 个数据库项目与我们的大型 .net 项目集成。一切都按照我们在本地 PC 上的预期构建和执行。文件最终位于数据库项目 sql/Debug 或 Release 文件夹下的预期位置。 在我们的 TFS 构建服务器上,项目会正确构建和生成所有内容,但会将所有数据库项目输出文件(.SQL、.schema 等)转储到 TFS 输出目录的根目录中。那里变得非常混乱,因为有几个项目似乎会导致这种情况发生。
目前我只关心数据库项目。有没有办法在项目的部署或构建定义(或我没想到的任何其他地方)中指定这些文件的输出位置?
谢谢
【问题讨论】:
【参考方案1】:一个简单的方法是创建一个在编译过程结束时运行的 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 的新文件夹。
【讨论】:
以上是关于我可以从 TFS CI Build 更改 VS2010 数据库项目的部署脚本的位置吗的主要内容,如果未能解决你的问题,请参考以下文章
TFS 2017 缺少用于指定 CI 触发器的“路径过滤器”?