我有两个项目A和B。项目A在其内使用了项目B中的类型X,因此我将B添加到了A的引用中。一切都编译成功。
我使用了一个强名称密钥文件对项目B进行签名。一切仍然编译成功。
然后我决定更改B的强名称密钥文件。我重新编译了项目B,没有问题。但是当我尝试构建项目A时,出现错误:“错误1:类型X定义在未被引用的程序集中。您必须添加对程序集B、版本=1.0.0.0、文化=neutral、PublicKeyToken=95b41b0d6571627b的引用。”
于是我删除了项目A中的引用并重新添加,但无济于事。我可以双击项目A中的项目B引用,在对象浏览器中打开并看到其中的类型X。我还完整地限定了A中的类型X对象,并且智能感知功能很好地捕捉到它们,但仍无法编译。
我以为更改密钥文件可能需要升级版本号,因此我将B程序集版本更改为2.0.0.0,但A仍然抱怨需要1.0.0.0版本。查看A中B引用的属性,它确实指向正确的版本,而且显示为2.0.0.0。
如果可以,我想弄清楚我错在哪里,但我也可以使用现有的密钥文件。