Sometimes my posts are over 20 pages long when pasted into a Word document. That’s when I call them article, or tutorial. Other times I post real quickies about little things that have annoyed me in the past, because I had to spend too much time looking for a solution to a certain issue, or just because they are not very obvious and I can image fellow developers doing a search on the internet on that specific subject.
This post is one of the latter.
In a SQL Server Integration Services project, have you ever wondered how on earth you can get files into that Miscellaneous folder? When you right-click on the folder in the Solution Explorer, nothing happens, no pop-up menu.
Well, the answer is simple, once you know it.
All you need to do is go one level up in the tree and right-click the Project node in the Solution Explorer. In the menu that appears, select Add > Existing Item….
In the pop-up window, navigate to any file that you’d like to add to the project. Files of a different type than the usual SSIS files such as .dtsx and .ds are automatically added under the Miscellaneous folder. When adding files, they will be automatically copied to the SSIS project folder, no matter where they were stored originally. See, not that complicated… once you know it!
In the following screenshot I’ve added three different file types to the folder, just to prove that it’s working.
I like using this folder to store files that belong with that particular project. Examples of those are configuration files, XSLT files for complex XML conversions, and also the SQL scripts that create my databases. Each time when I make schema changes, I update the scripts. And as I’m using TFS integration, I can rest assured that I always have a backup of my files. (At least, assuming the TFS team is doing their job – this is usually beyond my responsibility )
Speaking about TFS, watch out if you use Business Intelligence Development Studio 2008 to connect to Team Foundation Server 2005! There’s an interesting setting in the Options screen (through the Tools menu), located in the Source Control > Visual Studio Team Foundation Server page. This setting is called Get latest version of file on check out.
However, there’s one caveat! On TFS2005 it doesn’t do anything! If you’re not aware of that, you may get an annoying surprise when you’re trying to check in your changes because you may have been working on an outdated version of your package! And as you probably already know: merging two versions of an SSIS package is, well, what shall I call it, a challenge?
Another setting that helps you to avoid the issue described above is located under Source Control > Environment and is called Get everything when a solution or project is opened. Activate this setting and each time when you open your project, you’ll get a popup window which allows you to Get the latest version of the files.
That leaves one more possible conflict situation. If someone changes a package on the same day as you, the second person will need to explicitly do a Get Latest Version or he/she will be working on an outdated version. So, communicate with your team mates so that you know if someone has gotten an assignment that collides with yours. Of course, this last problem is just a theoretical possibility. In teams, work is usually divided so that developers do not need to work with more than one person on the same piece of code. The same logic applies to SSIS packages.
And remember, have fun!