电贺。 我已经开发了一些我想要加载并在C#代码中执行的SSIS包。 C#代码部署在我们的应用程序机器上。 我在C#项目中引用了SQLServer.ManagedDTS DLL。
我尝试在我们的暂存应用程序框中使用该DLL,顺便说一下,它似乎也需要gac'ing SQLServer.DTSRuntimeWrap DLL。
执行包的代码就是这样
Runtime.Package package = new Runtime.Application().LoadPackage(ssisPackageFilePath, null);
package.Variables["FilePath"].Value = sourceFilePath;
//Excute Package to insert data from source csv file into a SQL table
Runtime.DTSExecResult results = package.Execute();
当我尝试运行该过程时,我收到以下错误
An Integration Services class cannot be found.
Make sure that Integration Services is correctly installed on the computer that is running the application.
Also, make sure that the 64-bit version of Integration Services is installed if you are running a 64-bit application
我想我应该能够简单地gac(安装)我用来开发执行SSIS dtsx包文件的代码的一个DLL。
我在Visual Studio 2008 BIDS项目中开发了包,产生了一个dtsx文件。 我在visual studio 2010项目中引用了SqlServer.ManagedDTS DLL来从代码中执行dtsx文件。 在本地测试和调试成功。
为了让我的代码能够执行SSIS包,我需要做些什么才能设置我的应用程序框?
我希望我不仅限于能够从安装了SQL Server或IntegrationServices实例的盒子上的代码执行包。这可能意味着需要另一个许可证。
我是否需要在应用程序框上安装Integration Services?
答案 0 :(得分:1)
是的,您需要安装Integration Services才能在服务器上运行该程序包。仅将DLL部署到GAC中将无助于执行包。
以下MSDN link描述了Running an SSIS Package Programmatically on a Remote Computer
。
您需要安装至少一台安装了Integration Services的服务器才能执行MSDN文章所述的操作。