我遇到一个问题,我的公司基础框架中有一个从基础控件继承的表单。
此处的基本控件称为PlugInBase
,并且继承自标准System.UserControl
。
必须修复namespace
并且与程序集的路径不匹配。
namespace
为namespace Omitec.ThreeG.Runtime.Portal.PlugIns
,但路径为Omitec.ThreeG.Runtime.Portal.WindowsNative.PlugInBase
。
如果我尝试根据PlugInBase
打开表单,我会看到标准的Exception
屏幕,说明无法显示设计器,因为Omitec.ThreeG.Runtime.Portal.PlugInBase
无法加载。
然而,如果我更改namespace
中的PlugInBase
以匹配其打开的路径,则无需麻烦。
另一个奇怪的事情是我们办公室的一些工程师只有这个错误。其他人没有。
经过进一步调查,这肯定是继承的控件命名空间与文件路径不匹配的问题。
是否有一些设置严格执行命名空间的查找?正如我之前提到的,办公室中的一些开发人员在完全相同的代码段中没有这个问题。
由于框架是共享代码,因此无法从标准中更改namespace
。
这让我疯了一会儿。有什么想法吗?
答案 0 :(得分:0)
Visual Studio有时会这样做。
请记住,设计人员确实运行表单的构造函数来生成设计器。如果那里有东西可能会抛出这个异常,那可能是你的原因。
由于程序实际上没有运行,因此存在设计时错误的空间。
如果这不是问题,我修复它的另一种方法是关闭所有开放的设计师。清洁解决方案,构建,然后再次打开设计器。有时我必须添加一个关闭visual studio的额外步骤,如果它已经打开了一段时间。