如何调试 VS 2010 抱怨未引用的程序集?
我将解决方案从 VS2008/.NET 3.5 转换为 VS 2010/.NET 4。
我收到以下消息:
错误 CS0012:类型“xxx.yyy”是在未引用的程序集中定义的。您必须添加对程序集“xxx,Version=1.0.0.301,Culture=neutral,PublicKeyToken=null”的引用。
问题是,项目中没有使用类型 xxx.yyy 的代码,而且该项目引用的其他程序集也没有引用程序集 xxx。
关于如何调试这个有什么建议吗?
更新:谜题解决了。
假设错误发生在程序集 AAA 中的 A 类行上。
这是由于 AAA.A 实现接口 AAA.IA,该接口使用引用的程序集 BBB 中的类型 BBB.B。
反过来,BBB.B 的实现使用编译器抱怨的类型 xxx.yyy。
马克·格拉维尔(Mark Gravell)的答案当然是解决问题的方法。
I converted a solution from VS2008/.NET 3.5 to VS 2010/.NET 4.
I'm getting this:
error CS0012: The type 'xxx.yyy' is defined in an assembly that is not referenced. You must add a reference to assembly 'xxx, Version=1.0.0.301, Culture=neutral, PublicKeyToken=null'.
The thing is, there's no code in the project that uses type xxx.yyy, and also, none of the other assemblies referenced from this project refer to assembly xxx either.
Any suggestions on how I could debug this?
Update: Mistery solved.
Let's say the error is on a line of class A in assembly AAA.
It was caused by the fact that AAA.A implements interface AAA.IA that uses type BBB.B from a referenced assembly BBB.
In turn, the implementation of BBB.B uses the type xxx.yyy that the compiler was complaining about.
Mark Gravell's answer is of course the fix for the problem.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
通常这意味着公共 API 上有一个成员 - 通常是一个接口或基本类型,这是需要的。修复方法很简单:添加引用。编译器不会弥补它;该引用必须在某个地方使用,否则编译器如何知道它。如果你给出一个更具体的例子,我们也许可以说明为什么需要它。
Usually that means that there is a member on the public API - often an interface or base-type, that is needed. The fix is simple: add the reference. The compiler won't be making it up; that reference must be used somewhere, else how would the compiler even know about it. If you give a more specific example, we can probably show why it is needed.