如何删除对动态生成DTS包的.net 2.0 DTS库的依赖关系。如何使用C#.Net 4.6中的等效SSI?

如何删除对动态生成DTS包的.net 2.0 DTS库的依赖关系。如何使用C#.Net 4.6中的等效SSI?,c#,ssis,ssis-2012,dts,C#,Ssis,Ssis 2012,Dts,我们正在工作中进行技术升级。移动到SQL server 2012。还将应用程序从.Net 2.0迁移到.Net 4.5+,以便我们也可以在较新的操作系统上运行应用程序。问题在于,应用程序代码动态创建DTS包,然后运行任务运行程序,通过运行包将构建DTS包的上传文件读取到数据库中。旧代码使用DTS库创建DTS包。当然,此代码不再可用 我不想转换DTS包。我不想,一开始就建造它们。我可以改用SSI,但我不确定这是SSI的使用方式。有人能告诉我如何使用SSIS进行此操作吗 谢谢你的时间 如果您没有生成

我们正在工作中进行技术升级。移动到SQL server 2012。还将应用程序从.Net 2.0迁移到.Net 4.5+,以便我们也可以在较新的操作系统上运行应用程序。问题在于,应用程序代码动态创建DTS包,然后运行任务运行程序,通过运行包将构建DTS包的上传文件读取到数据库中。旧代码使用DTS库创建DTS包。当然,此代码不再可用

我不想转换DTS包。我不想,一开始就建造它们。我可以改用SSI,但我不确定这是SSI的使用方式。有人能告诉我如何使用SSIS进行此操作吗


谢谢你的时间

如果您没有生成SSIS包的程序的源代码,您几乎没有什么变化。
这里的主要问题是程序将为旧SSIS版本生成包;它包括DTSX文件格式和组件名称。组件名称是SSIS任务和数据流项的名称,这是SSIS知道下一步执行哪个任务的方式。糟糕的是,这些组件名称中的大多数在SSIS的下一个版本中都发生了更改;此外,一些组件更改了其参数名称。
如果您保持DTS生成程序不变,您将始终收到SSI过时版本的软件包。简单的包可以由SSI动态转换和升级,但更复杂的包应该手动升级。
在您的情况下,有几种可能性:

  • 查找源代码并修改它以生成正确的包
  • 使用SSIS或Visual Studio中的升级向导生成包、保存并升级。然后,您必须在VS中手动维护包,并通过SQL Server代理或批处理文件运行它们
  • 熟悉如何基于元数据动态生成包。这比C#方法简单得多

就个人而言,我会选择第三个选项。

您了解DTS组件的功能吗?我怀疑它只是导入文件。如果是这种情况,那么动态创建和运行DTS文件完全是过火(动态创建SSIS包也会过火)。如果这一步只是导入数据,那么您可以直接在.Net中轻松实现。如果您必须创建SSIS包,那么您可以使用BIML根据元数据自动生成它们,但在15年后这也将过时!哈哈,尼克同意了,下面的人也在建议BIML(我从来没听说过),我来看看这个。。。而且,我相信你的怀疑是正确的,它只是通过上传的文件将数据导入数据库。这我可以清楚地看到。。。我目前的目的是编写自己的导入例程,导入正在上载的相同文件,而不必使用任何包。我认为这才是真正必要的。虽然我会看看BIML,看看这在这种情况下是否有意义……是的,事实上,我不想把一个自动化过程变成一个需要手动将DTS包转换为SSIS包的过程。实际上,这里真正要做的就是上传文件,并需要导入数据库。我会看看BIML,看看它在这里是否有意义,但现在我想我可以用C#编写一个导入工具,这样就可以了。谢谢你的意见!