Visual Studio 2015中的SSIS - 自定义SSIS组件无法在SSIS工具箱中找到

11

我在Visual Studio 2015中的SSIS中添加自定义组件时遇到了问题。

我的系统环境是: Windows 8.1 64位

Visual Studio Community 2015版本: 14.0.24720.00 更新1

Microsoft SQL Server Integration Services Designer 版本13.0.900.80 (我已安装SQL Server 2016 CTP3.2,因此SSIS的版本是此版本 - 这可能是问题的一部分,并且它不是一个完全发布的产品,这可能是个漏洞)

Microsoft .NET Framework 版本4.6.01055

我尝试过使用110和120的程序集。我将两个dll文件都添加到GAC中,在x86和x64文件夹下使用不同的强名称命名。

110程序集

c:\Program Files (x86)\Microsoft SQL Server\110\DTS\PipelineComponents c:\Program Files\Microsoft SQL Server\110\DTS\PipelineComponents

120个组件

c:\Program Files (x86)\Microsoft SQL Server\120\DTS\PipelineComponents c:\Program Files\Microsoft SQL Server\120\DTS\PipelineComponents

我已经研究了这个问题,但找不到任何确定性的解决方案。人们似乎提出问题,得到一些回答,然后没有回复告诉任何人如何解决这个问题,如下面的帖子所示:

Visual Studio 2015 Integration Services项目无法使用我的自定义SSIS组件

与原始帖子唯一的区别是,我正在使用Visual Studio 2015的SQL Server Data Tools Preview(12月版),但这应该没有关系,对吗?

我尝试更改项目中引用的程序集。在尝试了自己的代码之后,我发现了以下页面,其中描述了如何开始构建自定义SSIS组件,并且在不进行太多工作的情况下构建它,将dll添加到GAC和适当的DTS文件夹中。

真正有用的是开发一个安装程序,以获取系统设置,安装到GAC并将dll复制到正确的文件夹,以便SSIS工具箱可以获取它。微软似乎想尽可能地让创建和安装新的SSIS组件变得困难。

所以我有以下问题: 1.在Visual Studio 2015中,SSIS组件应该使用哪个.NET版本? 2.gacutil应该使用哪个版本(我听说这很重要)? 3.dll需要放入哪个文件夹才能被SSIS工具箱拾取? 4.我应该把dll放在x86还是x64文件夹中?我的系统是x64,但Visual Studio exe是一个x86可执行文件,所以我猜测x86文件夹是正确的。 5.如果我将dll放入多个文件夹中会有影响吗? 6.是否有人真的成功在Visual Studio 2015中添加了自定义的SSIS组件?

任何帮助或评论都将不胜感激。

Matt


7
好的,我终于解决了这个问题:我使用了.NET Framework 4.6。我确保使用以下文件夹中的gacutil.exe添加到了全局程序集缓存:C:\ Program Files(x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6 Tools并将dll复制到以下文件夹:C:\ Program Files(x86)\Microsoft SQL Server\130\DTS\PipelineComponents在刷新SSIS工具箱后,该组件现在出现在通用文件夹/子部分中。我希望这可以帮助任何遇到此问题的人。 - mattp
这是唯一一个对我有效的解决方案,谢谢。 - cdlm
2
@mattp 请在答案部分发布您的答案,让其他人受益,谢谢! - Kyle Hale
1个回答

2

OP的评论,转化为答案:

好的,我终于成功解决了这个问题:

我使用了.NET Framework 4.6。我确保使用以下文件夹中的gacutil.exe添加到gac:C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6工具,并将dll复制到以下文件夹中:C:\Program Files (x86)\Microsoft SQL Server\130\DTS\PipelineComponents

刷新SSIS工具箱后,该组件现在出现在公共文件夹/子部分中。

希望这能帮助其他遇到此问题的人。

– mattp 2016年1月31日2:14


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接