TFS integration in SSIS

2020-04-20 21:35发布

问题:

I have few SSIS packages which is developed using VS2013 (.NET 4.5 Framework) in one solution. And few packages which are developed using VS2012 (.NET 4.0 Framework) in another solution.

I want to integrate both solutions with TFS. Currently, I have integrated VS2013 with TFS and its works fine.

But, if I want to integrate VS2012 developed SSIS with the same TFS. There are two problems:

  1. Do I need to do TFS installation has to be done in VS2012 or can i use same TFS installed for VS2013.
  2. When I add these VS2012 solution to existing TFS, my build is overrritten by something and getting corrupted.

How I can keep both solutions of different framework in TFS?

回答1:

TFS is a version control system. It can manage any text file and since an SSIS package (.dtsx) is just XML, it can version control it just fine.

There are many interfaces into TFS: there's a web interface, a UI shell as well as integration with Visual Studio 2010/2012/2013/2015.

The trick is going to be that you have two different version of SQL Server Integration Services packages there and they are not interchangeable.

  • VS 2010 or VS 2012 => SQL Server 2012
  • VS 2014 => SQL Server 2014
  • VS 2016 * => SQL Server 2012/2014/2016

If you open an SSIS project on an older version of VS, it will not be able to open the packages. You'll get an error about the XML being broken in VS and SQL Server won't be able to run them either.

If you open an SSIS project on a newer version of VS, it will automatically upgrade it to the current version. Which is great if you're migrating to that version, otherwise, see preceding point.

You will not be able to have a single solution that contains both 2012 and 2014 SSIS packages. You can edit projects in the VS version that corresponds to your SSIS project and then use whatever version of VS you chose for the TFS Team Explorer integration but that'd be silly as it's a feature of them all.

VS 2016

This gets its own section as it is currently in flux. However, the stated direction from the VS and SQL Server teams with regard to tooling is an important one. VS 2016 is slated to provide editing capabilities for SQL Server 2012, 2014 and 2016 SSIS packages. No more do you have to keep a version of VS around just to support each version of SQL Server. There will be a toggle that allows you to specify what version of SSIS this project should target.

And the people did rejoice and did feast upon the lambs, and toads, and tree-sloths, and fruit-bats, and orangutans, and breakfast cereals...



回答2:

  1. You can install the VS 2012 Update 5 and connect to your TFS Server(both 2013 and 2015) use it directly. For TFS and VS client compatibility information, please refer to this document:https://msdn.microsoft.com/en-us/library/vs/alm/tfs/administer/requirements?f=255&MSPPError=-2147217396.
  2. I think you’re using TFS 2013, and you want to build your VS 2012 solution using TFS 2013 build definition, right? If yes, you can install VS 2012 Update 5 on your build agent machine, then add /tv:4.0 or /p:VisualStudioVersion=11.0 in your build definition>>Process>>MSBuild arguments. https://msdn.microsoft.com/en-us/library/ms164311(v=vs.110).aspx.

Additionally, TFS 2013 support TFS 2012 build controller/agent, so you can install TFS 2012 build controller/agent(on another new machine which installed VS 2012 Update 5) to connect your TFS 2013 Server collection, then use default TFS 2012 build template in build definition and specify TFS 2012 build controller in it. This TFS 2012 build server will be the dedicated build server to build VS 2012 solutions.