该类型在未引用的程序集中定义

时间:2012-09-26 18:29:43

标签: c# winforms .net-assembly

我刚刚开始将合作伙伴办公室解决方案中的一些项目纳入我们的解决方案中。该程序是一个C#winform应用程序。

程序编译完毕,一切都很顺利,但是昨天我再次进行构建,不知从哪里抛出错误“类型'Namespace.MainFrameDisplay'是在未引用的程序集中定义的。必须添加对程序集'OtherAssembly,Version = 1.7.0.0,Culture = neutral,PublicKeyToken = 52af1880d3cd7291“的引用(据我所知,在原始项目中,OtherAssembly不用作引用。 Assembly和OtherAssembly之间的兼容性问题,添加OtherAssembly网有大约100个错误。)

以及相关错误“无法将类型'Namespace.MainFrameDisplay'隐式转换为'Namespace.MainFrameDisplay'[c:\ Dev \ program \ bin \ debug \ Assembly.dll]

错误的伪代码片段是:

private MainFrameDisplay _MainFrame;  //definition
_MainFrame = this.Mainframe;  // error is thrown here
_MainFrame.Parent.Controls.Add(_NotifyBar);

如果删除定义,则错误仍然存​​在 如果我拿出引发错误的行,它编译得很好。即使调用_MainFrame.Parent。

我已经删除/删除了这个麻烦的项目并解压缩/添加原始的新副本,但问题仍然存在。有什么想法,建议吗?

1 个答案:

答案 0 :(得分:0)

嗯...........当然我在发布后想出来了。

(-_-)

所以,让我们称之为后人的提示。

在上面的代码中,“this”引用了一个基类,这是我在解决方案中引入的其他项目之一。我将原始基类项目的引用与我的版本进行了比较,果然我不小心包含了对“OtherAssembly”的引用而不是“Assembly”。 (他们的真实姓名非常相似。)

错误的引用不会导致基类出现任何问题,但会导致派生类发生冲突。切换,修复,编译成功。