自动部署混合SSIS/DLL解决方案

Chr*_*ris 6 deployment automation ssis

我们目前使用SSIS/C#开发了一个解决方案.SSIS包(以及其他内容)具有使用类库中开发的逻辑的脚本任务.此功能需要与SSIS包保持独立.

因为我们使用的是SSIS包,所以我知道编译后的DLL需要部署到GAC,然后从脚本任务中引用.但是,这会给我们带来部署问题.

我们的自动部署工具(正确)自动增加DLL的版本号,然后发布到GAC.但是这打破了SSIS包,因为它将尝试根据它们发布到开发机器GAC的版本号来访问DLL.

我们唯一的解决方案是获取已编译的DLL,手动修改SSIS包脚本任务,然后发布包.

似乎必须有更好的方法来做到这一点 - 有没有人遇到过这个问题并想出更好的解决方案?或者我们需要改变的方法是否存在根本性(除了消除对DLL的需求)?

谢谢!

Chr*_*ris 8

好吧,经过大量的研究,我从来没有真正想出一个令人满意的解决方案.最后,我能得到的最接近的是一个解决方案,我动态加载我的引用:

    Dim rsAssembly As Assembly = Assembly.LoadFile("path from config file")
    Dim rsType As Type = rsAssembly.GetType("class name from config file")
    Dim obj As Object = Activator.CreateInstance(rsType)
Run Code Online (Sandbox Code Playgroud)

这允许我创建我需要的对象(尽管值得注意的是,任何其他依赖引用也需要动态加载或部分GAC,尽管至少不依赖于版本号).

在这里发布给未来的求职者,但如果有人想出更好的东西,我仍然会很好奇你知道你是如何解决它的 - 发布在这里,我会相信你的答案:)