我有一个非常简单的组件,它从管道中的(读/写)字符串中修剪所有前导和尾随空格。据我所知,我的开发机器上只有这个 dll 的一个二进制文件。我将它转移到另一台开发机器并在 GAC 中注册它,但是当我打开一个复制到第二台机器的包时,我收到以下警告:
错误 1 验证错误。数据流任务:DTS.Pipeline:“组件“TrimColumnsComponent”(1909)”的组件元数据无法升级到组件的较新版本。PerformUpgrade 方法失败。LD_CXSUM.dtsx 0 0
我在工具箱中有组件,我可以将另一个组件拖到数据流画布上,它似乎没有任何问题。
这是两台机器上的 SQL Server 2005 和 Visual Studio 2005。
在第二台机器上,我可以从头开始创建一个包,它将加载到构建组件的机器上(但图标是标准用户组件图标,与第二台机器上的相同)。如果我在构建机器上从头开始创建一个包,它具有正确的图标,但它会在非构建机器上提供升级消息。这些文件在组件目录中是相同的,它们具有相同的组件类 ID,并且它们在 GAC 中注册。
我通过检查 XML 手动检查了 dtsx 文件,并且在构建机器和非构建机器上创建的包中,机器之间的类 ID 和公钥是相同的。
什么会导致这种情况?