解决软件升级过程中GAC发生的问题.

本文记录了一次通过GAC(Global Assembly Cache)进行第三方控件升级的过程,详细讲述了如何使用gacutil工具来解决升级过程中遇到的问题,包括删除旧版控件及确保新版控件正确安装。

前言:将买来的第三方控件通过MSI(MS自带的安装工程)安装到GAC中.
后续:第三方控件升级,我们的将客户安装的客户端通过覆盖的方式进行升级。

C:小Y,测试一下升级程序。
Y:哎呀,覆盖后程序报错,不能运行了。

C:哪里的问题。
Y:可能是GAC中没有新控件.

C:那就安装新控件到GAC中呀.
Y:gacutil /i DevExpress.Data3.dll


C:还有问题吗.
Y:靠,还报错.

C:是不是新程序还访问的是老控件.从GAC中删除老控件程序集.
Y:那好我删除所有的,然后安装新的.gacutil /u DevExpress.Data3.dll

C:好了吗.
Y:我看看.GAC中还有.


C:直接中GAC中删除.
Y:删除不了.在删除GAC目录中的程序集时报"Assembly'...'could not be uninstalled because it is required by other applications."


C:我到网上找一下.GAC的目录的特点.
C:找到了.你通过DOS去删除.
    SET GACPATH=%windir%\assembly\GAC\
     rd /s /q %GACPATH%DevExpress.XtraEditors.Core
Y:真的删除了.再重新安装.gacutil /i DevExpress.Data3.dll

C:还有问题吗.
Y:哭,还报错.

C:哦,刚才无法从GAC中删除,是因为被引用了,加上引用.
Y:好.
    gacutil /i DevExpress.Data3.dll /r FILEPATH "%APPPATH%my.exe" myexe

C:还有问题吗.
Y:搞定了.

C:Y:哈哈哈.

转载于:https://www.cnblogs.com/rock_chen/archive/2006/03/07/344416.html

C# exe名称改名 报错 有关调用实时(JIT)调试而是此对话框的详细信息, 请参见此消息的结尾。 ************** 异常文本 ************** System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.TypeInitializationException: “FreeSql.MySql.MySqlCodeFirst”的类型初始值设定项引发异常。 ---> System.IO.FileLoadException: 未能加载文件或程序集“MySql.Data, Version=6.9.12.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d”或它的某一个依赖项。找到的程序集清单定义与程序集引用匹配。 (异常来自 HRESULT:0x80131040) 在 FreeSql.MySql.MySqlCodeFirst..cctor() --- 内部异常堆栈跟踪的结尾 --- 在 FreeSql.MySql.MySqlCodeFirst..ctor(IFreeSql orm, CommonUtils commonUtils, CommonExpression commonExpression) 在 FreeSql.MySql.MySqlProvider`1..ctor(String masterConnectionString, String[] slaveConnectionString, Func`1 connectionFactory) --- 内部异常堆栈跟踪的结尾 --- 在 System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) 在 System.Reflection.RuntimeConstructorInfo.Invoke(BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) 在 System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, StackCrawlMark& stackMark) 在 System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 在 System.Activator.CreateInstance(Type type, Object[] args) 在 FreeSql.FreeSqlBuilder.Build[TMark]() 在 FreeSql.FreeSqlBuilder.Build() 在 WindowsFormsApp1.FrmMain.btnSelect_Click(Object sender, EventArgs e) 位置 E:\吴亮亮写的软件\信息化查询软件\查询软件\20250529可视化查询软件-增加TG40\可视化查询软件\WindowsFormsApp1\WindowsFormsApp1\FrmMain.cs:行号 248 在 System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 在 System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) 在 System.Windows.Forms.Control.WndProc(Message& m) 在 System.Windows.Forms.ButtonBase.WndProc(Message& m) 在 System.Windows.Forms.Button.WndProc(Message& m) 在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) ************** 已加载的程序集 ************** mscorlib 程序集版本:4.0.0.0 Win32 版本:4.8.9310.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.NET/Framework64/v4.0.30319/mscorlib.dll ---------------------------------------- WindowsFormsApp1 程序集版本:1.0.0.0 Win32 版本:1.0.0.0 基本代码:file:///E:/%E5%90%B4%E4%BA%AE%E4%BA%AE%E5%86%99%E7%9A%84%E8%BD%AF%E4%BB%B6/%E4%BF%A1%E6%81%AF%E5%8C%96%E6%9F%A5%E8%AF%A2%E8%BD%AF%E4%BB%B6/%E6%9F%A5%E8%AF%A2%E8%BD%AF%E4%BB%B6/20250529%E5%8F%AF%E8%A7%86%E5%8C%96%E6%9F%A5%E8%AF%A2%E8%BD%AF%E4%BB%B6-%E5%A2%9E%E5%8A%A0TG40/%E5%8F%AF%E8%A7%86%E5%8C%96%E6%9F%A5%E8%AF%A2%E8%BD%AF%E4%BB%B6/WindowsFormsApp1/WindowsFormsApp1/bin/Debug/ww.exe ---------------------------------------- System.Windows.Forms 程序集版本:4.0.0.0 Win32 版本:4.8.9251.0 built by: NET481REL1LAST_C 基本代码:file:///C:/Windows/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll ----------------------------------------
最新发布
05-31
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值