Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

SSIS package not visible in VS 2010

We use VS 2010 (BIDS), SQL 2012 and TFS. We have a Solution with two projects. One for ETL and the other for reports. The ETL project recently prompted me to save/merge a different version on the server of the .dtproj project file. I assume if the version number is greater than mine than I want that file. It's prompting me to do the same thing with the other project in the solution currently. See attached. I have not done this, as it screwed up my environment the last time! I am SURE that this is 100% my lack of understanding of TFS. That being said, I don't know what to read/research to educate myself to not screw it up again.

When I clicked the 'Take Server Version' link it prompted me with a dialogue box that read something to the effect of:

"The file project.dtproj has been modified outside of the source editor ..."

Would you like to:

Save AS 
Save 
Cancel 
Ignore 

I clicked "Save As". Then when I realized I would end up with two DTproj files, one tied to the solution and one not, I hit cancel.

This is when it all went wrong.

After I hit cancel and reloaded the project in VS2010 my packages were not visible in the SSIS packages folder in VS 2012. They are in TFS (I see them in source explorer). They are on the FS (I see them in Windows Explorer).

However, nothing I do seems to get them back into the project.

If I try to add an existing package and browse to it on the file system I get the file in the project but it appears as a copy of the file. I see the new file and the original on the file system and the new file that appears in the project is called "Project (1).dtsx"

How do I get my project back to normal??

Thanks for any help!

Shawn

like image 981
Shawn Taylor Avatar asked Mar 19 '13 14:03

Shawn Taylor


1 Answers

A .dtproj file is just XML specifying what files constitute the project. Each release has a slightly different format from the other but it's not particularly complex.

Generally, what I find that "breaks" the project file between developers is adding a new package into the mix. Seems simple enough but for whatever reason, the diff utility cannot reconcile the differences when a package gets added. If I know there will be multiple developers working on an SSIS solution, I find it's best to try and create a placeholder packages first so that we don't have Dev A adding MyFabulousPackage to the project file while Dev B has added OutrageouslyGoodPackage at the same time. Instead, everyone has the same project file and then it's their job to fix the contents of their focus area.

A sample .dtproj

<?xml version="1.0" encoding="utf-8"?>
<Project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <DeploymentModel>Project</DeploymentModel>
  <ProductVersion>11.0.2100.60</ProductVersion>
  <SchemaVersion>9.0.1.0</SchemaVersion>
  <State>$base64$P...g==</State>
  <Database>
    <Name>SSISFoo.database</Name>
    <FullPath>SSISFoo.database</FullPath>
  </Database>
  <DataSources />
  <DataSourceViews />
  <DeploymentModelSpecificContent>
    <Manifest>
      <SSIS:Project SSIS:ProtectionLevel="DontSaveSensitive" xmlns:SSIS="www.microsoft.com/SqlServer/SSIS">
        <SSIS:Properties>
          <SSIS:Property SSIS:Name="ID">{83ded95e-49f0-4781-ab8f-7f8954d6423a}</SSIS:Property>
          <SSIS:Property SSIS:Name="Name">SSISFoo</SSIS:Property>
          <SSIS:Property SSIS:Name="VersionMajor">0</SSIS:Property>
          <SSIS:Property SSIS:Name="VersionMinor">0</SSIS:Property>
          <SSIS:Property SSIS:Name="VersionBuild">0</SSIS:Property>
          <SSIS:Property SSIS:Name="VersionComments">
          </SSIS:Property>
          <SSIS:Property SSIS:Name="CreationDate">2013-03-19T10:24:18.8594643-05:00</SSIS:Property>
          <SSIS:Property SSIS:Name="CreatorName">home\bfellows</SSIS:Property>
          <SSIS:Property SSIS:Name="CreatorComputerName">Thangorodrim</SSIS:Property>
          <SSIS:Property SSIS:Name="Description">
          </SSIS:Property>
          <SSIS:Property SSIS:Name="FormatVersion">1</SSIS:Property>
        </SSIS:Properties>
        <SSIS:Packages>
          <SSIS:Package SSIS:Name="Package.dtsx" SSIS:EntryPoint="1" />
        </SSIS:Packages>
        <SSIS:ConnectionManagers />
        <SSIS:DeploymentInfo>
          <SSIS:ProjectConnectionParameters />
          <SSIS:PackageInfo>
            <SSIS:PackageMetaData SSIS:Name="Package.dtsx">
              <SSIS:Properties>
                <SSIS:Property SSIS:Name="ID">{3BEEFDD8-FB86-4804-9049-EB28C4BD69DD}</SSIS:Property>
                <SSIS:Property SSIS:Name="Name">Package</SSIS:Property>
                <SSIS:Property SSIS:Name="VersionMajor">1</SSIS:Property>
                <SSIS:Property SSIS:Name="VersionMinor">0</SSIS:Property>
                <SSIS:Property SSIS:Name="VersionBuild">1</SSIS:Property>
                <SSIS:Property SSIS:Name="VersionComments">
                </SSIS:Property>
                <SSIS:Property SSIS:Name="VersionGUID">{3087F645-C4C4-4773-8040-E2DAFFE8B922}</SSIS:Property>
                <SSIS:Property SSIS:Name="PackageFormatVersion">6</SSIS:Property>
                <SSIS:Property SSIS:Name="Description">
                </SSIS:Property>
                <SSIS:Property SSIS:Name="ProtectionLevel">0</SSIS:Property>
              </SSIS:Properties>
              <SSIS:Parameters />
            </SSIS:PackageMetaData>
          </SSIS:PackageInfo>
        </SSIS:DeploymentInfo>
      </SSIS:Project>
    </Manifest>
  </DeploymentModelSpecificContent>
  <Miscellaneous />
  <Configurations>
    <Configuration>
      <Name>Development</Name>
      <Options>
        <OutputPath>bin</OutputPath>
        <ConnectionMappings />
        <ConnectionProviderMappings />
        <ConnectionSecurityMappings />
        <DatabaseStorageLocations />
        <ParameterConfigurationValues />
      </Options>
    </Configuration>
  </Configurations>
</Project>

What you're experiencing

What you are experiencing with the "Package (1).dtsx" is the bloody annoying and counter-intuitive adding of an existing package to the project. When you click Add Existing Package and select Package.dtsx in the project folder

Add Existing package

  1. Visual Studio/BIDS/SSDT is going to try to copy that package into the local folder
  2. That file already exists and rather than clobber it, it's going to save it with the (number) added into it

This makes sense as the window that allows you to select a package allows for packages to be in the Package Store or SQL Server. Doubly so if you notice the title bar of "Add Copy of Existing Package" (truth be told, I never noticed that word Copy until today and that's after 8 years of using the product)

enter image description here

What do you do?

Don't "Add an Existing Package." Instead, right click on the project and "Add, Existing item," which will then happen to be your existing SSIS package.

Add, Existing Item

like image 124
billinkc Avatar answered Oct 31 '22 04:10

billinkc