gpt4 book ai didi

dll - 旧的 DLL 文件继续被使用

转载 作者:行者123 更新时间:2023-12-02 01:45:12 24 4
gpt4 key购买 nike

我有一个看似随机的问题,我的项目将使用不再存在的旧版本 DLL 文件运行。有时会使用 DLL 文件的真实版本,有时会使用 DLL 文件的旧版本。谁知道 Visual Studio 从哪里获取这个 DLL 文件 - 它已经过时几个月了!

我知道它使用的是旧的 DLL 文件,因为当应用程序运行时,我开始出现奇怪的“TypeLoadExceptions”,提示方法不存在或没有实现。

以下操作有时会有所帮助,有时则没有:

  • 重新启动 Visual Studio
  • 重新启动计算机
  • 清理并重建解决方案
  • 删除\WINDOWS\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files 中的所有内容
  • 在\Documents and Settings\username\Local Settings\Temp 中搜索并删除 DLL 文件的实例

有时我执行上述所有步骤,但它仍然使用 DLL 文件的旧副本。它藏在哪里?!

我们的 TeamCity 上也存在同样的问题正在使用 MSBuild 的服务器。当 TeamCity 尝试运行单元测试时,它使用旧的 DLL 文件。

现在,我知道我可以在web.config文件中使用程序集重定向,但是DLL文件的版本号没有改变(我懒得更新它,所以它只是停留在版本 1)。我不想仅仅为了解决这个问题就开始对 DLL 文件进行版本控制。我只是想知道我需要清除哪些特定缓存,以便我可以继续开发。

最佳答案

它将其隐藏在 GAC 中。它可能会无限期地驻留在那里。使用更新的版本确实可以解决问题,但 Visual Studio 中存在一个突出的错误,该错误与选择正确的 DLL 文件版本有关。 (如果 DLL Hell 还不够糟糕,那么 Visual Studio 团队正在让情况变得更糟!)

在 GAC 中找到它很棘手,我无法建议您如何做到这一点,但一旦从那里删除旧版本,就不会再找到它。有时,即使您将编译器指向较新的版本(按日期),它也会使用旧版本,因为它具有相同的版本级别(按版本)。这就是它的错误。

关于dll - 旧的 DLL 文件继续被使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5575253/

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