Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Microsoft.DotNet.DesignTools.Client.DesignToolsServerException: 未能解析类型,“System.Drawing.Design.UITypeEditor, System.Drawing #12751

Closed
pengyouak opened this issue Jan 10, 2025 · 5 comments

Comments

@pengyouak
Copy link

pengyouak commented Jan 10, 2025

Environment

Microsoft Visual Studio Enterprise 2022
版本 17.12.3
VisualStudio.17.Release/17.12.3+35527.113
Microsoft .NET Framework
版本 4.8.09032

已安装的版本: Enterprise

Visual C++ 2022 00482-10000-00261-AA881
Microsoft Visual C++ 2022

ASP.NET and Web Tools 17.12.178.10385
ASP.NET and Web Tools

Azure 应用服务工具 3.0.0 版 17.12.178.10385
Azure 应用服务工具 3.0.0 版

C# 工具 4.12.0-3.24572.7+dfa7fc6bdea31a858a402168384192b633c811fa
IDE 中使用的 C# 组件。可能使用其他版本的编译器,具体取决于你的项目类型和设置。

Extensibility Message Bus 1.4.42 (main@840f8b3)
Provides common messaging-based MEF services for loosely coupled Visual Studio extension components communication and integration.

GitHub Copilot 17.12.38.29086
GitHub Copilot 是一个 AI 配对程序员,可帮助你更快地编写代码,并减少工作量。

Microsoft JVM Debugger 1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines

Mono Debugging for Visual Studio 17.12.5 (918dbb1)
Support for debugging Mono processes with Visual Studio.

NuGet 包管理器 6.12.2
Visual Studio 中的 NuGet 包管理器。有关 NuGet 的详细信息,请访问 https://docs.nuget.org/

Razor (ASP.NET Core) 17.12.3.2457601+b5256abf658352440e61aa1372bbc0798e9ceb7d
提供 ASP.NET Core Razor 的语言服务。

TypeScript Tools 17.0.30918.2001
TypeScript Tools for Microsoft Visual Studio

Visual Basic 工具 4.12.0-3.24572.7+dfa7fc6bdea31a858a402168384192b633c811fa
IDE 中使用的 Visual Basic 组件。可能使用其他版本的编译器,具体取决于你的项目类型和设置。

Visual F# Tools 17.12.0-beta.24501.1+19610c0b654766eec49d044cb97ca6eaa2a63d16
Microsoft Visual F# Tools

Visual Studio IntelliCode 2.2
Visual Studio 的 AI 协助开发。

VisualStudio.DeviceLog 1.0
有关我的包的信息

VisualStudio.Mac 1.0
Mac Extension for Visual Studio

VSPackage 扩展 1.0
VSPackage Visual Studio 扩展详细信息

Xamarin 17.12.0.153 (d17-12@1d0906d)
用于启用 Xamarin.iOS 和 Xamarin.Android 的开发的 Visual Studio 扩展。

Xamarin Designer 17.12.3.17 (remotes/origin/main@0912a005b9)
用于在 Visual Studio 中启用 Xamarin Designer 工具的 Visual Studio 扩展。

Xamarin.Android SDK 13.2.2.0 (d17-5/45b0e14)
Xamarin.Android Reference Assemblies and MSBuild support.
Mono: d9a6e87
Java.Interop: xamarin/java.interop/d17-5@149d70fe
SQLite: xamarin/sqlite@68c69d8
Xamarin.Android Tools: xamarin/xamarin-android-tools/d17-5@ca1552d

适用于 Google Test 的测试适配器 1.0
启用带有针对 Google Test 编写的单元测试的 Visual Studio 测试工具。扩展安装目录中提供了使用条款和第三方通知。

用于 Boost.Test 的测试适配器 1.0
通过针对 Boost.Test 编写的单元测试启用 Visual Studio 测试工具。扩展安装目录中提供用户条款和第三方通知。

.NET version

.net 6 Winform

Did this work in a previous version of Visual Studio and/or previous .NET release?

No response

Issue description

如果设计器中包含图标,则无法正常显示,以有图标的窗体作为基类继承的窗体有的不能显示,能显示的在点击窗体控件时,不显示属性窗口的内容,在控制台会输出
`
Request failures: Types/GetEditor.
Microsoft.DotNet.DesignTools.Client.DesignToolsServerException: 未能解析类型,“System.Drawing.Design.UITypeEditor, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”

                    有关如何对设计器进行故障排除的信息,请参阅 https://aka.ms/winforms/designer/troubleshooting 指南。

`

Steps to reproduce

Image

Diagnostics

[16:40:28.838920] fail: System.InvalidOperationException: 设计器加载遇到错误。请确保可以成功构建项目。
                           在 Microsoft.DotNet.DesignTools.Client.Host.ProjectInfoProvider.NetCore.<GetNetCoreProjectInfoAsync>d__6.MoveNext()
                        --- 引发异常的上一位置中堆栈跟踪的末尾 ---
                           在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
                           在 Microsoft.DotNet.DesignTools.Client.Host.ProjectInfoProvider.<GetProjectInfoAsync>d__9.MoveNext()
                        --- 引发异常的上一位置中堆栈跟踪的末尾 ---
                           在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
                           在 Microsoft.DotNet.DesignTools.Client.Host.ServerHostFactory.<CreateHostAsync>d__8.MoveNext()
                        --- 引发异常的上一位置中堆栈跟踪的末尾 ---
                           在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           在 System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
                           在 Microsoft.DotNet.DesignTools.Client.DesignToolsClientLoader.<CreateClientAsync>d__29.MoveNext()

                        有关如何对设计器进行故障排除的信息,请参阅 https://aka.ms/winforms/designer/troubleshooting 指南。
@pengyouak pengyouak added the untriaged The team needs to look at this issue in the next triage label Jan 10, 2025
@Zheng-Li01
Copy link
Member

@pengyouak, will appreciate that if you can provide more details help us to reproduce the issue, such as reproduce steps, GIF or sample project.

@pengyouak
Copy link
Author

@pengyouak
Copy link
Author

pengyouak commented Jan 11, 2025

我将资源文件的代码手动从

    <resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />

改成了

<resheader name="reader">
    <value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <resheader name="writer">
    <value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=6.0.2.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
  </resheader>
  <assembly alias="System.Drawing.Common" name="System.Drawing.Common, Version=6.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51" />

更改之后设计器可以正常显示了,但是点击控件时,属性窗口还是空白的。此时,我关闭VS,使用Jetbrains的Rider打开项目,窗体设计器可正常使用,而且属性窗口也正常。

VS偶尔可以显示某些控件的属性,比如,点击窗体显示属性内容,但是点击窗体上的按钮属性窗口又没有内容了,有内容时更改属性会弹出错误框

Image

@pengyouak
Copy link
Author

pengyouak commented Jan 11, 2025

Image

20250111-0322-25.1085343.mp4

我的项目引用了一个开源的框架的项目,只要引用之后就会出现上面的问题,把这个项目移除就正常了,导致这个情况的原因大概是什么呢?或者有什么方法可以让我排查出是由于这个开源项目的哪个包引起的?

@pengyouak
Copy link
Author

找到原因了,因为我引用了一个开源项目,这个开源项目又引用了另一个开源的SDK项目,这个SDK项目编译时引用了4.X的System.Drawing,导致我的窗体项目设计器异常。

@dotnet-policy-service dotnet-policy-service bot removed the untriaged The team needs to look at this issue in the next triage label Jan 11, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants