c# - Visual Studio 2015 SSIS - 未在 SSIS 工具箱中选取自定义 SSIS 组件

标签 c# sql-server ssis visual-studio-2015 sql-server-2016

我在 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 的版本是这个版本——这可能是问题的一部分,它不是一个完全发布的产品,这可能是一个错误)

微软 .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 工具箱获取。这几乎就好像 Microsoft 想让创建和安装新的 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 组件?

如有任何帮助或意见,我们将不胜感激。

马特

最佳答案

OP 的评论,转换为答案:

好的,我终于设法解决了这个问题:

我使用的是 .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 工具箱后,组件现在出现在公共(public)文件夹/子部分中。

我希望这对遇到此问题的其他人有所帮助。

– mattp 2016 年 1 月 31 日 2:14

关于c# - Visual Studio 2015 SSIS - 未在 SSIS 工具箱中选取自定义 SSIS 组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35109219/

相关文章:

ssis - Varchar(number) 导致 SSIS 失败

C# LINQ-SQL 帮助 - 查询超过 10,000 项的数据库

c# - 带有 c# 后端的 Angular 2 Http 获取变量不起作用

c# - C# 5.0 的异步等待功能与 TPL 有何不同?

c# - 单元测试下恢复SQL Server时避免恢复卡住

c# - EF 核心不在迁移方法上创建表

sql-server - SSIS OLEDB 连接管理器 - 无法连接到数据库(未显示数据库名称)

sql - 从 SQL Server 中的子查询值或其他聚合函数获取平均值

sql - DATEPART 作为参数

ssis - 如何在 SSIS 中设置命令超时?