0

我刚刚开始将合作伙伴办公室解决方案中的一些项目整合到我们的解决方案中。该程序是一个 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。

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

4

1 回答 1

0

嗯............当然我在发布后就知道了。

( -_- )

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

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

不正确的引用并没有导致基类出现任何问题,而是导致派生类发生冲突。切换,修复,编译成功。

于 2012-09-26T18:59:55.827 回答