C# Visual Studio项目中的旧版本正在覆盖DLL

C# Visual Studio项目中的旧版本正在覆盖DLL,c#,visual-studio,dll,visual-studio-2012,C#,Visual Studio,Dll,Visual Studio 2012,我正在Visual Studio 2012中使用HtmlAgilityPack开发一个Web应用程序。我的项目引用应用程序bin文件夹中的dll的1.4.0.0版本。以前它使用1.3.0.0 该应用程序可以工作,但bin文件夹中的dll大约每天都会被覆盖一次,将版本1.4.0.0替换为1.3.0.0。第一次发生这种情况时,我已经检查了GAC并删除了我的ASP.NET临时文件夹。有人知道这里发生了什么吗?您还需要从解决方案资源管理器中的解决方案参考列表中删除1.3.0.0 dll。旧的.dll显然

我正在Visual Studio 2012中使用HtmlAgilityPack开发一个Web应用程序。我的项目引用应用程序bin文件夹中的dll的1.4.0.0版本。以前它使用1.3.0.0


该应用程序可以工作,但bin文件夹中的dll大约每天都会被覆盖一次,将版本1.4.0.0替换为1.3.0.0。第一次发生这种情况时,我已经检查了GAC并删除了我的ASP.NET临时文件夹。有人知道这里发生了什么吗?

您还需要从解决方案资源管理器中的解决方案参考列表中删除1.3.0.0 dll。

旧的.dll显然是从解决方案中的某个位置引用的。我会在编辑器中打开项目文件,并在其中查找对旧版本的任何引用

如果没有找到,我猜您所依赖的其他库或组件正在引用.dll的旧版本(您是否使用任何第三方库?)。如果您没有这些的源代码,那么您可以使用或类似的工具对它们进行反编译。然后,您至少可以检查dll中的引用,并确认或排除它是问题的根源(没有双关语意图)


哦,还有一件事-可能很明显,但是你为参考设置了
特定版本=真的
了吗?

当我们更新到1.4.0.0版本时,1.3.0.0参考被删除了
特定版本=真的
确实被设置了,程序失败,因为它无法加载该版本(因为它被1.3覆盖)。我们的第三方库在迁移到1.4时都更新到了使用1.4的版本。在项目文件中全文搜索短语“HtmlAgilityPack”只会生成对版本1.4.0.0的正确引用。我们还添加了一个版本重定向到Web.config。使用attrib.exe将其设置为只读,以便无法删除。应该有东西爆炸了!当它再次发生时。给年轻团队成员放一天假是消除这种可能性的一种流行方式。这似乎是一种相当不错的尝试方式。我会让你知道会发生什么。只读似乎不会影响它。我相信参与该项目的人员之一正在提交引用旧版本DLL的项目文件。再加上我经常运行其他使用1.3的应用程序,这让我相信IIS正在从asp缓存中提取1.3。一个解决方案中有多个项目吗?