以编程方式创建SSIS 2019程序包时出错

时间:2019-04-29 02:22:20

标签: c# .net ssis ssis-2017 ssis-2019

我可以通过编程方式创建软件包  2016,但是当我尝试以编程方式创建程序包时,我遇到了以下错误。

  

无法加载文件或程序集'microsoft.sqlserver.dtsruntimewrap,   版本= 15.100.0.0,文化=中性,publickeytoken = 89845dcd8080cc91'   或其依赖项之一。系统找不到文件   指定。”

创建了示例程序包,并将其上传到一个驱动器位置的下方。

我观察到的是2016年的Microsoft.SqlServer.DTSRuntimeWrap存在

C:\Windows\Microsoft.NET\assembly\GAC_32\Microsoft.SqlServer.DTSRuntimeWrap\v4.0_13.0.0.0__89845dcd8080cc91

但是作为Visual Studio 2017安装的一部分的ssis 2019没有安装在GAC_32中,而是安装在

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn\Microsoft.SQLServer.DTSRuntimeWrap.dll

因此使用gacutil将其安装到了gac中,但是现在我可以看到下面的内容了  错误。

  

Microsoft.SqlServer.Dts.Runtime.DtsComException:'集成   找不到服务类。确保集成服务   已正确安装在运行   应用。另外,请确保集成的64位版本   如果您正在运行64位应用程序,则会安装服务。

更新:

我了解安装SSIS(MsDtsServer150)将解决此问题,但是以32位模式运行ssis确实不需要,因为我的应用程序以32位模式运行,因此无需安装SSIS就可以正常工作,类似于SSMS中的导入导出向导

进行了更多研究,即使未安装SSIS,我的应用程序仍以32位模式运行SSIS 2017,因为SSMS 17. *添加了所需的dll,但SSMS 18.0未安装所需的dll,并且在ssms中禁用了导入导出向导18.0,因此我的应用无法正常工作。

我能够从Visual Studio中运行SSIS包,所以我的主要问题是,我如何能够在Visual Studio中运行它而无需在gac中添加dll?我该如何利用同一件事?

以下是详细说明:

我们可以使用Sql server *版本安装程序(例如:sql server开发人员版本)安装SSIS,以使32位和64位的SSIS可以调用DTSRuntime.Application()的任何应用程序正常工作,但是如果未使用sql server安装SSIS安装程序,而不是仅安装SSMS,它仍将向gac添加32位版本,并在DTS文件夹下使用所有需要的dll创建“ C:\ Program Files(x86)\ Microsoft SQL Server \ 140”文件夹,借助此功能,我们可以通过将项目设置为32位模式的DTSRuntime.Application(),以32位模式运行SSIS。

Visual Studio正在为1.00.0.0创建dll的ex:15.100.0.0版本,并且以某种方式能够使用dll在同一文件夹中,以利用相同的DLL,我试图在app.config中创建绑定重定向,如下所示,但那没用

<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
     <dependentAssembly>
        <assemblyIdentity name="Microsoft.SqlServer.ManagedDTS" publicKeyToken="89845dcd8080cc91" culture="neutral"/>
        <bindingRedirect oldVersion="11.0.0.0-15.0.0.0" newVersion="15.100.0.0"/>
        <codeBase version="15.100.0.0" href="C:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\CommonExtensions\Microsoft\SSIS\150\Binn\Microsoft.SqlServer.ManagedDTS.dll"/>
      </dependentAssembly>
</assemblyBinding>

甚至试图将href更改为“。\ Microsoft.SqlServer.ManagedDTS.dll”,以指向bin中的程序集,但即使这样也没有帮助。

0 个答案:

没有答案