我收到以下错误:
'MyNamespace.MyBaseClass'不包含'MyMethod'的定义 并且没有扩展方法'MyMethod'接受类型的第一个参数 可以找到`MyMamespace.MyBaseClass'(你是否错过了使用 指令或程序集引用?)
当我在调用者行中选择方法并执行[Go to Definition]时,Visual Studio会在预期的位置找到方法声明。
当方法名称更改为MyMethod_ABC
并选择[生成方法存根]时,方法MyMethod_ABC
将创建在具有相同签名的MyMethod
旁边,只有参数名称不同。< / p>
项目无法建立。有人可以看错吗?
答案 0 :(得分:4)
对于那些正在寻找解决方案的人,就像我一样:
我刚刚遇到这个问题,但事实证明在引用的项目中有一个小的编译错误,其中包含我试图使用的方法,因为该项目没有用新方法成功编译,使用它在另一个项目中无效。修正了错误,我不再收到此错误。
答案 1 :(得分:3)
我最近遇到了完全相同的问题。解决方案是删除对有问题的proyect的引用,并再次添加相同的...谁知道,像魅力一样工作:)
答案 2 :(得分:2)
引用该方法和“转到定义”成功的能力不是100%链接的。虽然他们使用大量相同的基础设施,但他们在几个关键领域有所不同。一般而言,“转到定义”将在比编译更多的情况下成功。
它们不具有相同结果的最常见原因是
鉴于您遇到的特定错误,我将从缺少DLL /项目引用开始
答案 3 :(得分:2)
我以为我已经修好了一次,但后来又回来了。他们永久修复它的方式是:
首先,我在AssemblyInfo.cs中更新了程序集的版本号,可以在Visual Studio的解决方案资源管理器中的违规程序集属性部分找到该版本号。
我将它递增1.接下来我删除了我的主项目中的引用并重新添加它。最后,我执行了干净的构建违规项目并查找了任何错误。我看不到错误,但是有一个与未使用的Exception变量相关的警告。我删除了这个并完成了整个解决方案的重建,问题得到解决。
答案 4 :(得分:0)
如果您的代码涉及跨项目引用,请验证是否包含项目引用,并验证构建顺序。
答案 5 :(得分:0)
今天,当打开机器并打开visual studio时,问题消失,其他类有错误,但在正确的代码上没有红色下划线错误指示。现在解决方案正常。感谢所有为我着想的人。它是一个视觉工作室的bug? 再见。
答案 6 :(得分:0)
在开始编辑代码后,将class.cs从HtmlHelpers目录移动到带有VS接口的Filters目录后,我得到了同样的错误。构建,重建,清理没有帮助。
但是,如果你不开始编辑代码怎么办?从HtmlHelper目录中拖动class.cs并在我的情况下删除到Filters目录。然后按F5,不会出现任何错误。 然后关闭VS,删除带有dll,cache,tmp,DEBUG ...的obj目录。运行VS.按F5键再没有错误。
关闭VS,删除Obj目录并重启windows。 Filters目录中的Class.cs指向代码中错误的HtmlHelpers目录。按F5键再没有错误。
答案 7 :(得分:0)
我也遇到了这个问题。方法就在那里,可以通过“转到定义”找到。我更改了定义名称(和引用),并使用新名称获得了相同的错误。 我重新输入了它上面的参考线,然后删除了旧的参考线,瞧 - 它工作了。不知道为什么,但由于某种原因很少VS挂在一行代码上,唯一的解决方案是重新键入行并删除原始行。奇。 好吧,同样的问题又回来了。我注意到“缺失”方法不会出现在匹配我开始键入的方法列表中。来自同一类的其他方法。即使我重命名该方法,此行为也不会更改。所以我认为“盲点”与特定方法的外在形式有关 - 而不仅仅是名称。所以我从IDE“看到”的同一个类中复制了另一个方法。我重命名了它,删除了内部代码,然后在“看不见”的方法中粘贴在内部代码中。现在它始终如一。一个真正的“瞧”。