Visual Studio 2022 v17.11 至 v17.12 升级 - 表单设计器问题

问题描述 投票:0回答:1

我们有一个非常大的 WinForms 解决方案(38 个项目),面向 .NET 8.0 (Windows),它在 VS 17.11.6 中运行得很好,但一旦我们升级到 v17.12,我们就无法再打开大多数表单/控件在进程外表单设计器中。 (多个用户)

我们可以编译整个解决方案并运行应用程序。

我们能够打开直接从 Form 或 UserControl 派生的 Forms/Control,但是从 Form/UserControl 的子类派生的任何窗体/控件都会失败,并显示 “无法为此文件显示设计器,因为其中没有任何类”可以设计为“”或“”无法加载文件或程序集'WinRT.Runtime,版本=2.1.0.0...”(我们不是针对 WinRT。)

我做了一些挖掘,发现一个针对 .NET 8.0 (Windows) 的新 WinForms 项目与表单设计器配合得很好。 我比较了项目文件,发现我从目标平台中删除了操作系统版本控制,例如。然后我可以使用“net8.0-windows”而不是“net8.0-windows10.0.22621.0”打开表单设计器。

经过进一步的试验和错误,我发现如果该项目针对 Windows 7 或 8,设计器可以正常工作,但任何更新的版本都会失败。

还有其他人遇到过这种情况吗? 有办法解决吗? 目前,我正在回滚到 VS 17.11.6

任何帮助表示赞赏。

winforms visual-studio-2022 windows-forms-designer .net-8.0
1个回答
0
投票

我在网上发现了一篇帖子,其中的错误与您的错误非常相似(无法加载文件或程序集“WinRT.Runtime,版本=2.1.0.0”),该错误在针对 net8.0-windows10.0.22621.0 时也会发生。在帖子中,该问题是由 CommunityToolkit.Mvvm 在更新后使用新的 Windows SDK 投影引起的,而应用程序仍在使用旧版本的 Windows SDK。

8.3.0 和 WinForms 抛出无法加载文件或程序集“WinRT.Runtime”·问题 #927

版本 8.3.0 启动时出现异常 · 问题 #923

基于此,您的问题也可能是由于Windows SDK版本与所需版本不匹配导致的。

您可以尝试将以下内容添加到您的 .csproj 文件中:

<PropertyGroup>
<TargetFramework>net8.0-windows10.0.22621.0</TargetFramework>
<WindowsSdkPackageVersion>10.0.22621.56</WindowsSdkPackageVersion>
</PropertyGroup>
© www.soinside.com 2019 - 2024. All rights reserved.