0

我尝试在一个 inside 中使用我自己的script compoment.dll ssis。正常程序给我一个错误:"could not load file or assembly 'xxx' or one of its dependencies. The system cannot find the file specified."

我尝试过的是我去项目-> 在资源管理器中打开并将我的 .dll 放入 bin 文件夹中,但发生了同样的错误。

我找到了这个 C# 代码并将其转换为 vb.net:

<Microsoft.SqlServer.Dts.Tasks.ScriptTask.SSISScriptTaskEntryPointAttribute> _
Public Partial Class ScriptMain
    Inherits Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTARTScriptObjectModelBase
    Shared Sub New()
        AppDomain.CurrentDomain.AssemblyResolve += New ResolveEventHandler(AddressOf CurrentDomain_AssemblyResolve)
    End Sub
    Private Shared Function CurrentDomain_AssemblyResolve(sender As Object, args As ResolveEventArgs) As System.Reflection.Assembly
        If args.Name.Contains("ssisHelper") Then
            Dim path As String = "c:\temp\"
            Return System.Reflection.Assembly.LoadFile(System.IO.Path.Combine(path, "ssisHelper.dll"))
        End If
        Return Nothing
    End Function
End Class

但我没有Micorosoft.SqlServer.Dts.**Tasks**。任何可以帮助我使此脚本正常工作或可以提供另一种解决方案以使我的 dll 在script compoment?

4

2 回答 2

0

您需要通过运行 gacutil -i assembly.dll 将程序集添加到 GAC(全局程序集缓存)

更多信息可以在这里找到

https://msdn.microsoft.com/en-us/library/dkkx7f79(v=vs.100).aspx

于 2016-06-17T13:05:17.770 回答
0

在将其添加到 GAC 之前,您需要对其进行强命名,例如:http ://microsoft-ssis.blogspot.com/2011/05/referencing-custom-assembly-inside.html

于 2016-06-18T20:09:32.727 回答