【发布时间】:2016-01-31 01:15:51
【问题描述】:
我在 Visual Studio 2015 中向 SSIS 添加自定义 SSIS 组件时遇到问题。
我的系统是: Windows 8.1 64 位
Visual Studio 社区 2015 版 14.0.24720.00 更新 1
Microsoft SQL Server 集成服务设计器 版本 13.0.900.80 (我已经安装了 SQL Server 2016 CTP3.2,所以 SSIS 的版本是这个版本 - 这可能是问题的一部分,它不是一个完全发布的产品,这可能是一个错误)
Microsoft .NET 框架 版本 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 project does not pick up my custom SSIS component
与原始帖子的唯一区别是我使用 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放在多个文件夹有关系吗? 5. 有没有人真正设法在 Visual Studio 2015 中添加自定义 SSIS 组件?
任何帮助或 cmets 将不胜感激。
马特
【问题讨论】:
-
好的,我终于设法解决了这个问题:我使用了 .NET Framework 4.6。我确保使用以下文件夹中的 gacutil.exe 添加到 gac: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 工具箱后,组件现在出现在 Common 文件夹/子部分中。我希望这对遇到此问题的其他人有所帮助。
-
这是唯一对我有用的解决方案,谢谢。
-
@mattp 请将您的答案发布在答案部分,让其他人受益,谢谢!
标签: c# sql-server ssis visual-studio-2015 sql-server-2016