我最近在一个像样的大小的库上完成了一个(希望成功的)VB到C#的转换。但是,在尝试构建它时,我从编译器收到一些麻烦。我创建了一个名为ExtensionMethods
的小助手库,编译它,将.dll放在外围项目的bin
文件夹中,并在新转换的库中添加了对它的引用。该库有两个名称空间ExtensionMethods.Json
和ExtensionMethods.Enums
。在我想使用Enums
命名空间的任何类中,我使用using ExtensionMethods.Enums
导入它。我对.Json
命名空间做了同样的事情(顺便说一句,它工作正常)。
以下是正在发生的事情的图片证据:
请注意Enums
下的蓝色波浪形,并同时提出来自Intellisense的Enums
建议。以下是VS实际识别程序集的证明(.ToInt()
是扩展方法的名称):
注意Intellisense如何将.ToInt()
作为扩展方法建议并且在其下面没有波浪形,即使是异议......
(三个文件使用此命名空间)
除了......之外有意义。
基本上,这就是说,“是的,Jason,你已正确引用所有程序集,是的,你的程序集包含它们应该的名称空间,但不,我今天不想编译。”
我只想编译并完成这个怪物。我在这里缺少什么?
更新
ExtensionMethods.Json
,ExtensionMethods
中的另一个命名空间在引用时工作正常,并且不会产生程序集引用错误。这两个项目都是在同一台64位机器上创建的,所有项目都以.NET 4为目标。
答案 0 :(得分:1)
所以这就是我修复它的方法。基本上我从bin文件夹中删除了.DLL,删除了对它的每一个引用,重新放入.DLL,并重新引用了所有内容。现在,由于一些奇怪的原因,编译问题已经消失。耶。
答案 1 :(得分:0)
当我遇到64位与32位的问题时,我依稀记得这样的事情。确保项目平台可以使用该引用。如果我没记错的话,我在一个64位平台上为“任何CPU”编译的项目中引用了一个32位DLL,或者类似的东西,这是不久前的。
答案 2 :(得分:0)
解决这个问题的唯一方法我发现当我遇到同样的问题时,会发现所有相关代码,删除引用,重新构建所有内容,再次添加引用并取消注释代码,重新构建。
注意:重新构建,而不是构建......只是重新添加引用并没有帮助
似乎构建器获得了无效的部分构建或某些东西(不知道它在技术上如何工作),即使你告诉它重新构建它也不会覆盖。您需要摆脱所有代码和引用,并重新构建以摆脱无效状态。
(是的,我知道,这是很多工作而且很糟糕,但这是我发现摆脱它的唯一方法)