ASP.NET网站编译--Intellisense在外部程序集中看到新属性,但编译时验证失败

ASP.NET网站编译--Intellisense在外部程序集中看到新属性,但编译时验证失败,asp.net,reference,web-site-project,Asp.net,Reference,Web Site Project,我有一个网站“项目”。它有对外部DLL的程序集引用,我们会不时更新这些引用(某种“框架”)。VisualStudio2008愉快地创建了“刷新”文件,用于在编译时更新引用 我在外部程序集中添加了一个枚举,并重新编译了它。回到网站项目中,我更新了引用(通过右键单击“Bin”文件夹下列出的外部DLL并选择“Update reference”,以及进入网站的属性页和引用页,突出显示我的外部程序集并单击“Update”按钮) 在网站的App_Code文件夹中有一个类,我使用外部程序集中的新枚举值对其进行

我有一个网站“项目”。它有对外部DLL的程序集引用,我们会不时更新这些引用(某种“框架”)。VisualStudio2008愉快地创建了“刷新”文件,用于在编译时更新引用

我在外部程序集中添加了一个枚举,并重新编译了它。回到网站项目中,我更新了引用(通过右键单击“Bin”文件夹下列出的外部DLL并选择“Update reference”,以及进入网站的属性页和引用页,突出显示我的外部程序集并单击“Update”按钮)

在网站的App_Code文件夹中有一个类,我使用外部程序集中的新枚举值对其进行了一些更改。Intellisense接受了新添加的内容,IDE根本不会抱怨我使用它,直到我尝试构建解决方案

在构建解决方案时,我得到一个错误BC30456,这是一个“{0}”不是{1}”错误的成员。该错误保留在“错误列表”视图和“输出”窗口中,直到我再次更新对外部程序集的引用,之后错误立即消失

如果我从项目中完全删除引用,VS会正确地开始抱怨缺少枚举类型,并警告找不到我尝试导入的命名空间。当我重新添加程序集引用时,几秒钟后,所有错误和警告都会消失。在第一次尝试重建解决方案和/或Web时泰,我又犯错误了

我试着通过做这些任务来确认我没有发疯:

  • 清理网站的临时ASP.NET文件文件夹,包括32位和64位版本的框架
  • 手动将部件从外部位置直接复制到Bin文件夹中
  • 关闭并重新打开Visual Studio
  • 重新启动计算机
  • 我刚才注意到的一件事是,外部DLL上一次构建是在2011年11月14日。当该版本的DLL位于Bin文件夹中时,Intellisense是准确的。只要我尝试构建,DLL和PDB将恢复为2011年11月7日的构建。我不知道这是从何而来。该机器上该DLL的调试和发布构建都是正确的re for 11/14。DLL没有签入到我们的源代码管理系统,只有.refresh文件,因此它不能从源代码管理服务器更新它们


    我真的,真的,被难住了,我在寻找你可能有的任何想法。

    当然,我在问了这个问题5分钟后就想出来了

    该网站项目有另一个外部程序集引用(B),这取决于我在(A)中遇到的问题。在生成时,当它更新引用B时,它正在使用生成B的bin文件夹中的DLL覆盖.refresh文件中位置中引用A的DLL,该文件夹恰好是11/7版本

    更新引用A将正确的DLL复制到Bin文件夹中。更新引用B在编译时将其覆盖