【问题标题】:Project consistency check failed. has a different ProtectionLevel than the project项目一致性检查失败。具有与项目不同的保护级别
【发布时间】:2015-05-05 14:28:00
【问题描述】:

我有一个烦人的问题,它说项目和包具有不同的保护级别。这不是真的,它们都设置为“EncryptSensitiveWithUserKey”。

我尝试了这个Protection level changed mid project - now project won't build 和其他一些解决方案,但没有奏效。

每当我想构建或重建时,它都会说:

错误 1 ​​项目一致性检查失败。以下 检测到不一致:Persoon.dtsx 具有不同的 保护等级高于项目。 CountableUren.dtsx 有不同的 保护等级高于项目。 Projecten.dtsx 有不同的 保护等级高于项目。 Master_LAB_DSA.dtsx 有不同的 保护等级高于项目。 DimProject.dtsx 有不同的 保护等级高于项目。 DimPerson.dtsx 有不同的 保护等级高于项目。 DimLookupSources.dtsx 有一个 与项目不同的保护级别。 InitializeDim.dtsx 有一个 与项目不同的保护级别。 Master_LAB_ETL.dtsx 有一个 与项目不同的保护级别。 Master_LAB_DWH.dtsx 有一个 与项目不同的保护级别。 0 0

在“查看代码”中,当设置为“EncryptSensitiveWithUserKey”时,没有“DTS:ProtectionLevel="X"”。在项目的属性中,它设置为“EncryptSensitiveWithUserKey”。我还尝试将所有内容都设置为“DontSaveSensitive”,这也给了我同样的错误。

如何解决这个问题?

【问题讨论】:

  • 发布您的 .dtproj 的内容,该节点引用了 ProtectionLevel。某事,某处不正常。要么是现有的包,要么是项目文件
  • 如何打开文件看代码?我只能在右键单击项目 dtproj 时选择属性
  • 右键单击项目名称并选择属性。查看“属性”窗口并找到 FullPath。复制该值。关闭现有项目/解决方案。 Ctrl-O(打开文件)并在结果打开文件对话框中,将路径粘贴到 .dtproj。 Ctrl-F 并查看所有 ProtectionLevel 项目。 EncryptSensitiveWithUserKey 的数值应该是 1
  • 如果没有 ProtectionLevel 节点,那么我假设您使用集成服务导入项目向导从现有部署创建项目?
  • 您包含了 dtproj.user 文件 在 Windows 资源管理器中关闭隐藏文件扩展名。第二行应以<Project 开头

标签: ssis sql-server-2012


【解决方案1】:

在上面的 cmets 中通过 billinkc 的帮助找到了解决方案,并遵循了这个解决方案:Protection level changed mid project - now project won't build

问题是保护级别不一样。有些是 1,有些是 2,而在属性菜单中它们都是一样的。

所以这些步骤得到了修复:

  1. 在 Visual Studio (2012) 中打开您的项目。
  2. 在解决方案资源管理器中右键单击您的项目名称 屏幕并选择属性
  3. 将 Security 下的 ProtectionLevel 更改为 DontSaveSensitive
  4. 双击一个包,在属性下,应该有一个列表 与属性。将 Security 下的 ProtectionLevel 更改为 DontSaveSensitive 在属性中(对所有包执行此操作)
  5. 全部保存 关闭 Visual Studio (2012)
  6. 然后转到 C:\ProjectName\ProjectName\ 并搜索文件 .dtproj 扩展名。 Integration Services 类型的那个 项目文件不是类型为Visual Studio的文件 项目用户选项文件
  7. 使用文本编辑器打开 ProjectName.dtproj。我用记事本++,但是 您也可以使用 Visual Studio 和其他文本编辑器打开它。
  8. 搜索 并更改 EncryptSensitiveWithUserKeyDontSaveSensitive
  9. 搜索和更改 这后面的任何数字到 0 零。搜索整个文件,那里 如果您的包裹不止一个,则应该不止一个。
  10. 保存文件,关闭它,进入 Visual Studio (2012) 并右键 单击解决方案资源管理器中的项目名称,然后单击构建。 现在一切都应该正常了。

【讨论】:

  • 这些说明在使用 Visual Studio 2015 时也适用(足够好)。
  • 为什么不在 .dtproj 文件中简单地将 EncryptSensitiveWithUserKey 设置为 1?
  • gaborhodi 可能的意思是在 SIS:ProtectionLevel= 中用 1 替换 EncryptSensitiveWithUserKey
  • 这基本上适用于我们 VS 2017 企业。我们在此解决方案中的所有 20 多个包上将 ProtectionLevel 从 1 设置为 0。我们发现我们必须进行重建而不仅仅是构建来解决这个问题。我很好奇为什么首先会发生这种情况,以及为什么在 SSIS gui 开发人员中采取的措施没有解决它(你必须手动编辑 dtprof 文件来解决这个问题)。
  • VS 2017 Enterprise 的进一步更新。在另一个解决方案中解决这个问题。我认为这取决于解决方案的构建方式。在这种情况下,我所要做的就是将解决方案级别的最高属性设置为 DontSaveSensitive(上面的第 3 步)并重建项目。这就是我所要做的。我不需要手动编辑每个单独包中的 xml,也许它们已经是 DontSaveSensitive。
【解决方案2】:

我收到了这个错误,因为我在有其他解决方案的解决方案中创建了一个新的 dtsx。

我删除了新包并重新添加了它,它很好。

【讨论】:

  • 这比原来接受的解决方案要简单得多...工作起来就像一个魅力...
  • @ahmedmzl 是的,但最初的答案是在此之前 3 年。
猜你喜欢
  • 2015-12-31
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 2016-08-13
  • 1970-01-01
  • 2018-08-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多