已签名的程序集问题



我的项目中有一个WCF服务。它引用了另一个具有服务约定接口的程序集。一切都很顺利,直到我用密钥签署了与合同的参考,并对合同和服务进行了更改。

重建后,我开始得到这样的异常:程序集ZZZ中YYY类型的方法XXX没有实现。

服务似乎正在使用带有合同的旧dll,但找不到原因。当我使用reflector查看生成的dll时——没有旧代码——合同和服务的签名是相同的。如果我把签字从合同中删除,一切都很完美。

出于测试目的,该服务在卡西尼网络服务器下运行。还尝试在IIS下运行它。我以前的解决方案是删除ASP.NET临时文件。现在也无济于事。

与合同签订的参考是为了满足sharepoint的需求。如果我从GAC中删除此引用,错误也会消失。但为什么服务项目在GAC中寻找这个dll?有变通办法吗?

如有任何建议,不胜感激。

这是CLR的特性。如果程序集是强名称的,CLR将在GAC中搜索它。所以在我的情况下,我应该在GAC中保留我的DLL的正确版本,或者从那里删除它。

最新更新