7

我们使用 VS 2010 (BIDS)、SQL 2012 和 TFS。我们有一个包含两个项目的解决方案。一个用于 ETL,另一个用于报告。ETL 项目最近提示我在 .dtproj 项目文件的服务器上保存/合并不同版本。我假设版本号是否大于我想要的文件。它促使我对当前解决方案中的另一个项目做同样的事情。见附件。我没有这样做,因为它上次搞砸了我的环境!我确信这 100% 是我对 TFS 缺乏了解。话虽如此,我不知道该读什么/研究什么来教育自己不要再搞砸了。

当我单击“获取服务器版本”链接时,它会提示我一个对话框,其中包含以下内容:

“文件 project.dtproj 已在源代码编辑器之外进行了修改......”

你是否想要:

Save AS 
Save 
Cancel 
Ignore 

我点击了“另存为”。然后,当我意识到我最终会得到两个 DTproj 文件,一个与解决方案相关联,一个与解决方案无关时,我点击了取消。

这是一切都出错的时候。

在我点击取消并在 VS2010 中重新加载项目后,我的包在 VS 2012 的 SSIS 包文件夹中不可见。它们在 TFS 中(我在源代码管理器中看到它们)。它们在 FS 上(我在 Windows 资源管理器中看到它们)。

然而,我所做的一切似乎都无法让他们重新参与到项目中。

如果我尝试添加现有包并在文件系统上浏览到它,我会在项目中获得该文件,但它显示为文件的副本。我在文件系统上看到了新文件和原始文件,项目中出现的新文件名为“Project (1).dtsx”

如何让我的项目恢复正常?

谢谢你的帮助!

肖恩

4

1 回答 1

19

.dtproj 文件只是 XML 指定哪些文件构成项目。每个版本的格式都略有不同,但并不是特别复杂。

通常,我发现在开发人员之间“破坏”项目文件的是在组合中添加一个新包。看起来很简单,但无论出于何种原因,diff 实用程序在添加包时无法协调差异。如果我知道会有多个开发人员在开发 SSIS 解决方案,我发现最好先尝试创建一个占位符包,这样我们就不会让开发人员 A 将 MyFabulousPackage 添加到项目文件中,而开发人员 B 同时添加了 OutrageouslyGoodPackage时间。相反,每个人都有相同的项目文件,然后他们的工作就是修复他们关注领域的内容。

示例 .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>

你正在经历什么

您在使用“Package (1).dtsx”时遇到的问题是将现有包添加到项目中令人讨厌且违反直觉。当您单击添加现有包并在项目文件夹中选择 Package.dtsx

添加现有包

  1. Visual Studio/BIDS/SSDT 将尝试将该包复制到本地文件夹中
  2. 该文件已经存在,而不是破坏它,它将保存它并(number)添加到其中

这是有道理的,因为允许您选择包的窗口允许包位于包存储或 SQL Server 中。如果您注意到“添加现有软件包的副本”的标题栏,那就更是如此(说实话,直到今天我才注意到复制这个词,那是在使用该产品 8 年后)

在此处输入图像描述

你做什么工作?

不要“添加现有包”。相反,右键单击项目和“添加,现有项目”,这将恰好是您现有的 SSIS 包。

添加,现有项目

于 2013-03-19T15:46:45.317 回答