C# 如何为控件/窗体(*.designer.cs)创建测试以检测视图设计器(Visual Studio)上的错误

C# 如何为控件/窗体(*.designer.cs)创建测试以检测视图设计器(Visual Studio)上的错误,c#,visual-studio,C#,Visual Studio,给定控件/窗体(*.designer.cs),在Visual Studio上打开它并右键单击“视图设计器”时,通常不会加载该控件/窗体,并显示以下错误消息: 为防止加载设计器前可能的数据丢失,必须解决以下错误: 确切的错误与此无关,因为我们希望为无法加载“视图设计器”的任何错误创建失败测试 我发现了几种解决方案,但并不完全有效: 使用EnvDTE库 此选项将运行Visual Studio并打开解决方案,然后选择*.designer.cs和“视图设计器”。 我们不喜欢这个解决方案,因为它需要在我

给定控件/窗体(*.designer.cs),在Visual Studio上打开它并右键单击“视图设计器”时,通常不会加载该控件/窗体,并显示以下错误消息: 为防止加载设计器前可能的数据丢失,必须解决以下错误:

确切的错误与此无关,因为我们希望为无法加载“视图设计器”的任何错误创建失败测试

我发现了几种解决方案,但并不完全有效:

  • 使用EnvDTE库 此选项将运行Visual Studio并打开解决方案,然后选择*.designer.cs和“视图设计器”。 我们不喜欢这个解决方案,因为它需要在我们的测试机器上安装VisualStudio

  • 罗斯林 看起来很有希望,但通过查看“视图设计器”代码,即Microsoft.VisualStudio.Design.Serialization.CodeDom,它似乎根本没有使用Roslyn,而是使用了良好的旧CodeDom

  • IVSMDCODomProvider/IVsSolution/。。。 VisualStudio有几个界面,似乎可以在不运行VisualStudio的情况下加载Designer。 但不幸的是,这些接口要求项目是“VisualStudio包”或vsix

  • 使用DesignerSerializationManager/CodeDomainSerializer/…对Microsoft.VisualStudio.Design进行反向工程。。。 似乎是最有可能的解决方案,但似乎是一项乏味的工作

  • 问题是有没有优雅/简单的解决方案


    提前感谢您提供的任何建议/帮助。

    由于许多愚蠢的原因,例如当它不是文件中的第一个类时,设计师不会加载。有时,由于清理/重建无法修复的原因,它无法加载,但重新启动VS可以修复。我觉得唯一的解决办法是#1。