C# 在GAC中注册dll

C# 在GAC中注册dll,c#,.net,ssis,C#,.net,Ssis,当我尝试执行包含脚本任务的SSIS包时,出现异常错误。控件没有仅进入Main()函数并抛出错误。下面是错误详细信息 Exception has been thrown by the target of an invocation. at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) at System.Refl

当我尝试执行包含脚本任务的SSIS包时,出现异常错误。控件没有仅进入
Main()
函数并抛出错误。下面是错误详细信息

Exception has been thrown by the target of an invocation.
   at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
   at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
   at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
   at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
   at Microsoft.SqlServer.Dts.Tasks.ScriptTask.VSTATaskScriptingEngine.ExecuteScript()
当我探索时,我知道我们需要注册在GAC中引用的DLL。但当我尝试使用命令行执行此操作时,也会出现无效的命令错误。使用以下2个命令进行注册。请让我知道如何解决此问题。我需要启动什么命令来注册dll。我正在使用.NET4.0框架

gacutil -i Microsoft.TeamFoundation.dll

gacutil.exec /l "Microsoft.TeamFoundation.dll"

由于您收到了
无效命令错误
,这意味着您没有在
框架SDK
下执行此命令。你需要按照这个来执行

GacUtil是Framework SDK 4.0版本的一部分(仅出于您的目的,我在这里使用了v4)位于C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319 只需设置一个批处理文件,如:

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\gacutil -i <DLL_Path>
PAUSE 'Any key to finish'
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\gacutil-i
暂停“任意键完成”

或者只执行此
C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\gacutil-i

当您注册dll时,是否会出现错误消息“'gacutil'未被识别为内部或外部命令、可操作程序或批处理文件”。在我的系统中,gacutil文件是@C:\program files(x86)\Microsoft SDK\Windows\v7.0A\bin\NETFX 4.0工具,我将其移动到C:\Windows\Microsoft.NET\Framework64\v4.0.30319并执行命令,执行时没有任何错误。但是,在SSIS包执行过程中,我仍然面临相同的异常。在dll注册后我还需要做什么吗?检查程序集是否已注册,-windows运行类型
程序集
-如果在那里,那么它已安装,但我不确定SSIS错误,注意:我只是说,如果您在其他地方找到它,大部分gacutil应该出现在
\Framework\v4.0.30319
中,你可以在那里执行,不需要把它移到别的地方。