The*_*ebo 34 c# windows-services visual-studio-2010
我们有以下共享组件:
public class OurServiceBase : System.ServiceProcess.ServiceBase
Run Code Online (Sandbox Code Playgroud)
此类具有我们在所有下游服务中所需的功能,例如标准化执行调度和日志记录功能.
在一个新项目中,我添加以下内容:
public class MyService : System.ServiceProcess.ServiceBase
Run Code Online (Sandbox Code Playgroud)
在Windows Designer中,该类正确显示.
当我将服务更改为从OurServiceBase派生时
public class MyService : OurSharedLibrary.OurServiceBase
Run Code Online (Sandbox Code Playgroud)
设计师停止工作:

完整错误是:无法为此文件显示设计器,因为其中的所有类都无法设计.设计者检查了文件中的以下类: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)
Run Code Online (Sandbox Code Playgroud)
7/19/2011 2:34 PM EDT新发现.
类"OurServiceBase"存在于一个单独的项目中(通常仅作为DLL引用).一时兴起,我将基类文件复制到我的项目中,构建并打开设计器.有效!当我再次删除基类文件并返回到外部DLL引用时,设计器再次崩溃.
use*_*795 66
您也可以尝试这样做:
这可能会或可能没有帮助,但它确实在我的项目中解决了同样的问题.
Aus*_*nez 17
这是另一种可能的解决方案:
在 build 下的项目属性下,我的平台目标设置为 x64。我将其更新为“任何 CPU”,重建了我的项目,设计人员打开得很好。
这更好地解释了它: x64 中的 Visual Studio 设计器不起作用
saj*_*oon 12
其他步骤包括:
这就能解决问题
你最好的选择是从一个OurServiceBase没有功能的版本开始,看看你是否可以设计MyService.如果是这样,那么慢慢添加功能直到它中断.
因为看起来Visual Studio在序列化其中一个成员时遇到问题OurServiceBase.
小智 5
以防万一像我这样的人必须在基于 Visual Studio 2008 的旧项目上工作并面临同样的问题。
这可能是因为项目路径包含一些外来字符,例如C#
例如,我的路径如下所示:
C:\projects\C#\项目名称...
当它更名为
C:\projects\CSharp\项目名称...
Visual Studio 现在能够识别父类,然后使用继承的窗体打开窗体。
我有一个包含 2 个项目的解决方案(一个引用另一个项目),我刚刚将一个目标设置为 .Net 4.5.2,另一个目标设置为 4.5。
提示:查看错误列表中的警告消息:
正在构建的项目“MSIL”的处理器架构与参考“C:....dll”、“x86”的处理器架构之间存在不匹配。这种不匹配可能会导致运行时失败。请考虑通过配置管理器更改项目的目标处理器体系结构,以便使项目和参考之间的处理器体系结构保持一致,或者依赖于具有与项目的目标处理器体系结构相匹配的处理器体系结构的参考。