SSIS 64 位数据流组件
SSIS 64bit Data Flow component
我通过开发一个 32 位 class 库(我们称之为 CustomComponent.dll)为 SSIS 创建了一个自定义组件。我正在 VS2015 中开发,目标是 SQL Server 2017。这很好,一切正常,即我可以通过执行以下步骤在 Visual Studio 中看到组件:
- 已将 CustomComponent.dll 复制到
"C:\Program Files (x86)\Microsoft SQL Server0\DTS\PipelineComponents"
- 使用
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" -i CustomComponent.dll
将 class 库添加到 gac
我遇到的问题是自定义组件现在必须是 64 位 dll,因为有对 64 位第三方库的引用(这些也已添加到 gac,还添加了 32 位版本).我做了以下事情:
- 删除了之前添加到 gac 中的内容
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" -u CustomComponent
- 删除了
"C:\Program Files (x86)\Microsoft SQL Server0\DTS\PipelineComponents"
处的 CustomComponent.dll
- 使用x64文件夹下的gacutil
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\gacutil.exe" -i CustomComponent.dll
- 将 CustomComponent.dll 添加到
"C:\Program Files\Microsoft SQL Server0\DTS\PipelineComponents"
但是我在VS中看不到这个组件
- 以上方法无效。我也尝试将 dll 复制到
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe"
仍然没有成功。
知道如何使这项工作能够查看 64 位 dll 中的组件吗?也许 link 显示了一个演练或尝试的方法?
此 link 显示了一个简单的组件。但是如果它被编译成等效的 64 位 dll,目标是 SQL 2017,我有同样的问题:
您需要添加 32 位版本,因为 Visual Studio is a 32-bit application。
据我所知,GAC 支持添加两个版本,并且每个版本都有一个单独的目录(GAC_64、GAC_MSIL ...)。您应该添加这两个组件,并且只更改 Run64bitRuntime
属性 以在 64 位模式下执行包。
如果您在 Visual Studio 之外执行包,您可以参考以下 link 了解更多信息:
我通过开发一个 32 位 class 库(我们称之为 CustomComponent.dll)为 SSIS 创建了一个自定义组件。我正在 VS2015 中开发,目标是 SQL Server 2017。这很好,一切正常,即我可以通过执行以下步骤在 Visual Studio 中看到组件:
- 已将 CustomComponent.dll 复制到
"C:\Program Files (x86)\Microsoft SQL Server0\DTS\PipelineComponents"
- 使用
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" -i CustomComponent.dll
将 class 库添加到 gac
我遇到的问题是自定义组件现在必须是 64 位 dll,因为有对 64 位第三方库的引用(这些也已添加到 gac,还添加了 32 位版本).我做了以下事情:
- 删除了之前添加到 gac 中的内容
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe" -u CustomComponent
- 删除了
"C:\Program Files (x86)\Microsoft SQL Server0\DTS\PipelineComponents"
处的 CustomComponent.dll
- 使用x64文件夹下的gacutil
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\x64\gacutil.exe" -i CustomComponent.dll
- 将 CustomComponent.dll 添加到
"C:\Program Files\Microsoft SQL Server0\DTS\PipelineComponents"
但是我在VS中看不到这个组件
- 以上方法无效。我也尝试将 dll 复制到
"C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.6.1 Tools\gacutil.exe"
仍然没有成功。
知道如何使这项工作能够查看 64 位 dll 中的组件吗?也许 link 显示了一个演练或尝试的方法?
此 link 显示了一个简单的组件。但是如果它被编译成等效的 64 位 dll,目标是 SQL 2017,我有同样的问题:
您需要添加 32 位版本,因为 Visual Studio is a 32-bit application。
据我所知,GAC 支持添加两个版本,并且每个版本都有一个单独的目录(GAC_64、GAC_MSIL ...)。您应该添加这两个组件,并且只更改 Run64bitRuntime
属性 以在 64 位模式下执行包。
如果您在 Visual Studio 之外执行包,您可以参考以下 link 了解更多信息: