2
votes

For someone coming from the manual SSIS package creation and modification paradigm using Visual Studio and TFVC, I'm struggling to 'grok' the BimlStudio and source control workflow.

I've got a BimlStudio project that emits SSIS projects (dtproj files) and associated packages, connections, etc. I want to put it all under source control (.biml and .dtsx files) using BimlStudio and TFVC.

How can I more precisely manage my source code changes than what I seem to be able to do currently.

Let's say I have a single package I need to change. The package (like all of my packages) is defined via external metadata (metadata that is not part of my BIML project). The only place I make a change is in that metadata.

After making the external meta-data change, I build my BIML project.

Since the entire project is re-built, it emits an updated package with the change from the external metadata included, and emits updated instances of packages where no change occurred.

I open up my updated project in Visual Studio.

Using a file "diff" tool, I compare any of the packages with their prior build version. Each "diff" shows that every package has all new GUIDs for all of it's various components.

SSIS Sample Package Diff

Since all of the packages' internal GUIDs change with each BIML build, I get this insane amount of "noise" surrounding my one change. Yes, I could assign static package GUIDs via the package metadata, but I'm not going to do that for every sub-component in my package. Or am I? (Please say no)

One could argue that since I know what changed, I only check in the one package. But life happens. I leave my work on Friday, come back on Monday and be like, "What change did I make?" Or I hand over my work to another developer and they need to know what changed, etc.

How do I best work through this?

Additionally, are SSIS artifacts (and all other files in my BimlStudio project's output folder) even included under BimlStudio's source control or just the .biml, .bimlproj, .bspcap and .mst files?

If SSIS artifacts are not included in BimlStudio's version control, then they would be free to be added to TFVC via Visual Studio, correct?

1

1 Answers

1
votes

This is the approach we've used:

  • Do not check in SSIS packages. In a BIML solution the SSIS packages could be considered build files. Use an ignore file to exclude them. Because they are dynamically created they will always change on re-create as you say.
  • (Assign static GUIDs to connections)