gpt4 book ai didi

c# - 升级具有 .NET 程序集依赖项的应用程序后出现严重的运行时错误

转载 作者:行者123 更新时间:2023-11-30 18:36:56 25 4
gpt4 key购买 nike

我正在升级应用程序并遇到了一些问题。现在旧的应用程序是 1.0 版并在 2.1.1 版加载依赖程序集 A 该程序集存在于应用程序本地目录中。我正在将新应用程序升级到 2.0 版,它将加载程序集 A 版本 1.0.1,该版本存在于其应用程序本地目录中。我已经使用 ISpy 检查了应用程序引用并确认了新的应用程序引用 A 版本 1.0.1

但是当我启动新应用程序 (v 2.0) 时,它仍在尝试加载程序集版本 2.1.1,但失败了。我检查了 app.config、machine.config 和 GAC,没有针对程序集 A 版本的重定向。我还检查了融合日志文件,但没有看到任何重定向。我所看到的只是融合日志,应用程序在版本 2.1.1 中预绑定(bind)了 A,因此无法设置其本地目录中存在的程序集。

我在这里遗漏了什么吗?应用程序在运行时仍然引用旧程序集的可能原因是什么?

更新:使用一些工具,我意识到旧程序集是从我的应用程序引用的 native DLL 引用的,但我不知道那个是哪个第三方 DLL,并且该应用程序加载了大量它们。融合日志通过记录“调用程序集:(未知)”来确认它。对于缺少的程序集。

现在我的下一步是找出哪个 dll 引用了错误的程序集并修复它。现在的问题是 ILSpy 工具不显示 native DLL 引用,DLLDepends 工具不显示程序集引用,所以我无法将两者链接起来。

谢谢

最佳答案

因为您尝试引用的库应该是 GAC 的一部分;你可能想试试:

  1. 控制面板
  2. 小图标(管理工具)
  3. 事件查看器
  4. 申请

Windows 本身应该抛出异常,并在出现错误时尝试引用一些特定的细节。特别是如果它属于GAC 的一部分。相当容易地磨练 mscoree.dllmscorelib.dll 库对我更有帮助。授予我使用它的那些客户具有损坏的框架;但是事件查看器告诉我它有问题的确切库。

您可能想尝试一下。不确定是哪个图书馆;但请记住,这通常对 %windir%/Assembly 文件夹中的库有益。希望对您有所帮助。

关于c# - 升级具有 .NET 程序集依赖项的应用程序后出现严重的运行时错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13310718/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com