我们有以下共享组件:
public class OurServiceBase : System.ServiceProcess.ServiceBase
此类具有我们在所有下游服务中所需的功能,例如标准化执行调度和日志记录功能。
在一个新项目中,我添加以下内容:
public class MyService : System.ServiceProcess.ServiceBase
在 Windows 设计器中,该类正确显示。
当我更改服务以从 OurServiceBase 派生时
public class MyService : OurSharedLibrary.OurServiceBase
设计师停止工作:
完整的错误是:
无法显示此文件的设计器,因为无法设计其中的任何类。设计者检查了文件中的以下类: EmailProcessor --- 无法加载基类“OurSharedLibrary.CienaServiceBase”。确保已引用程序集并且已构建所有项目。
引用正确的程序集,构建项目。我不明白为什么设计师会对此大发雷霆,因为我的服务最终确实派生自一个可设计的类。
任何建议都将受到欢迎。
更多信息 - 设计器呈现有关无法设计派生服务的错误时的调用堆栈:
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)
at System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
at Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
at System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)
2011 年 7 月 19 日下午 2:34(美国东部时间) 新发现。
类“OurServiceBase”存在于单独的项目中(通常仅作为 DLL 引用)。一时兴起,我将基类文件复制到我的项目中,构建并打开设计器。有效!当我再次删除基类文件并返回到外部DLL引用时,设计器再次崩溃。