2013-04-25 54 views
0

我正在使用HtmlAgilityPack在Visual Studio 2012中使用Web应用程序。我的项目在应用程序的bin文件夹中引用dll的1.4.0.0版本。以前它使用1.3.0.0DLL被Visual Studio项目中的旧版本覆盖

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

+2

使它只读与attrib.exe,因此它不能被删除。有些东西应该会爆炸!当它再次发生时。给初级团队成员休息一天是消除可能性的常用方法。 – 2013-04-25 20:23:26

+0

这似乎是一个相当不错的途径尝试。我会让你知道发生了什么。 – 2013-04-25 20:38:43

+0

只读似乎没有影响它。我相信在项目上工作的人之一是提交引用旧版DLL的项目文件。这一点,加上我经常运行其他使用1.3的应用程序的事实,使我相信IIS正在将1.3缓存在asp缓存中。 – 2013-05-10 13:04:40

回答

0

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

+0

当我们更新到版本1.4.0.0时,1.3.0.0引用被删除 – 2013-04-25 15:29:32

0

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

如果找不到任何东西,我的猜测是你依赖的其他库或组件是引用旧版本的.dll(你是否使用任何第三方库?)。如果你没有这些源代码,那么也许你可以使用JustDecompile或类似的工具反编译它们。然后,你至少可以检查你使用的dll内的引用,并确认或排除它作为你的问题的根源(没有双关语^^)。

哦,还有一件事 - 也许很明显,但你有没有设置Specific version = true作为参考?

+0

'特定版本= true'的确被设置,并且程序失败,因为它无法加载该版本(因为它被1.3覆盖)。 我们的第三方库全部更新到1.4版本时使用的版本。 我们的项目文件全文搜索短语“HtmlAgilityPack”只会产生对版本1.4.0.0的正确引用。 – 2013-04-25 15:32:25

+0

我们还添加了一个版本重定向到我们的Web.config。 – 2013-04-25 15:33:46

相关问题