title: How do I merge SSIS package files?
body: <p>I am wondering if anyone has any advice on merging SSIS's dtsx files. Here's the problems I see that make merging difficult:</p>
  
  <ul>
  <li>They are xml which can already be a pain for merging.</li>
  <li>They can have embedded C# scripts in which case they will have both the C# source code and the base64 encoded string of the dll file. </li>
  <li>They describe the flow of data in the package as well as the layout of the elements in the IDE.</li>
  </ul>
  
  <p>If anyone from Microsoft is listening, a lot of those problems are solved by making the packages several files rather than one file. One dtsx could be an xml describing the flow, an xml describing the layout, some .cs source files, and some dlls. But that's not how it is. <strike>Makes me wonder why anyone uses dtsx.</strike></p>
  
  <p><strong>A non-solution</strong></p>
  
  <p>The only solution I've seen online is to ensure that the dtsx file is locked when editing so only one user will have changes. This works fine when you're only talking about one branch but if you're working with multiple copies of the dtsx in various branches (or god forbid, <a href="http://mercurial.selenic.com/">DVCS</a>), then there's no feasible way to lock them all anytime you make a change. Besides that wouldn't really solve the problem unless you could also make sure no one else changed it before you could merge it everywhere.</p>