在 Visual Studio 上开发一个 dll 并将其嵌入到一个 dtsx 上
Develop a dll on Visual Studio and embed it on a dtsx
SSDT 具有允许在 C# 中开发能够处理 SSIS 流内数据的自定义代码的脚本任务。
但这个解决方案非常丑陋,因为每次我们需要编辑该代码时,都会打开一个 Visual Studio 实例,并且必须关闭它才能执行 dtsx。然后在SSDT里面执行的时候,又会打开一个VS实例,执行完就关闭了。
有没有办法不用SSDT打开VS,而是直接在VS中开发代码,引用SSISAPI,然后编译成dll嵌入到SSDT中?
或者,至少要保持 VS 打开和 "bound" 到 SSDT,这样我们才能开发和使用它的调试器?
如果您只关心编码和 SSIS 的分离,您可以尝试将它作为一个应用程序 (.exe) 并使用 Execute Process Task
.
执行它
通过这种方式,您可以将编码与 SSDT 分开,您现在还可以选择将其存储在 git 存储库中以跟踪更改,并仅在 .exe
的指定路径上进行部署您在 Execute Process Task
.
中设置的
在调试它时,我认为 VS 可以使用 Attached to Process
然后当你的 SSIS 命中你的应用程序时它会触发断点。但请注意,您必须将您的执行进程任务指向调试模式生成的.exe。
希望对您有所帮助。
SSDT 具有允许在 C# 中开发能够处理 SSIS 流内数据的自定义代码的脚本任务。
但这个解决方案非常丑陋,因为每次我们需要编辑该代码时,都会打开一个 Visual Studio 实例,并且必须关闭它才能执行 dtsx。然后在SSDT里面执行的时候,又会打开一个VS实例,执行完就关闭了。
有没有办法不用SSDT打开VS,而是直接在VS中开发代码,引用SSISAPI,然后编译成dll嵌入到SSDT中?
或者,至少要保持 VS 打开和 "bound" 到 SSDT,这样我们才能开发和使用它的调试器?
如果您只关心编码和 SSIS 的分离,您可以尝试将它作为一个应用程序 (.exe) 并使用 Execute Process Task
.
通过这种方式,您可以将编码与 SSDT 分开,您现在还可以选择将其存储在 git 存储库中以跟踪更改,并仅在 .exe
的指定路径上进行部署您在 Execute Process Task
.
在调试它时,我认为 VS 可以使用 Attached to Process
然后当你的 SSIS 命中你的应用程序时它会触发断点。但请注意,您必须将您的执行进程任务指向调试模式生成的.exe。
希望对您有所帮助。