迁移到 .NET 8 后,无法再在 Visual Studio 设计器中使用 Infragistics UltraWinGrid 控件打开 WinForms 表单

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

自从几天前我们从 .NET 7 切换到 .NET 8 以来,我们无法再在 Designer 中打开 WinForms 表单。这似乎与 VS 2022 版本无关,因为我的同事使用旧版本也有同样的问题我的17.9.3。修复没有帮助。我们正在编译为“AnyCPU”。

Windows Defender 的以下排除也没有帮助。

Add-MpPreference -ExclusionProcess 'devenv.exe'
Add-MpPreference -ExclusionProcess 'DesignToolsServer.exe'

Switch.System.IO.UseLegacyPathHandling
未设置。

“Windows 窗体输出”显示以下内容:

[12:35:28.990802] warn: [NWWMain]: Encountered an additional TypeRoutingDefinition for 'Infragistics.Win.UltraWinGrid.GridControlCodeDomSerializer'
[12:35:28.999814] fail: [NWWMain]: Failed to launch design tools server process process
                        System.InvalidOperationException: Multiple instances of 'ICollectionEditorFactory' exported with the name 'SeriesCollectionEditor'.
                           at Microsoft.DotNet.DesignTools.Factories.ObjectFactoryManager`2.AddFactories(IEnumerable`1 factories, Boolean throwOnDuplicates)
                           at Microsoft.DotNet.DesignTools.Factories.ObjectFactoryManager`2..ctor(IEnumerable`1 factories)
                           at lambda_method1203(Closure, LifetimeContext, CompositionOperation)
                           at System.Composition.Hosting.Core.LifetimeContext.GetOrCreate(Int32 sharingId, CompositionOperation operation, CompositeActivator creator)
                           at System.Composition.TypedParts.ActivationFeatures.LifetimeFeature.<>c__DisplayClass1_0.<RewriteActivator>b__0(LifetimeContext c, CompositionOperation o)
                           at System.Composition.Hosting.Core.CompositionOperation.Run(LifetimeContext outermostLifetimeContext, CompositeActivator compositionRootActivator)
                           at System.Composition.Hosting.Core.LifetimeContext.TryGetExport(CompositionContract contract, Object& export)
                           at System.Composition.Hosting.CompositionHost.TryGetExport(CompositionContract contract, Object& export)
                           at System.Composition.CompositionContext.GetExport(CompositionContract contract)
                           at System.Composition.CompositionContext.GetExport(Type exportType, String contractName)
                           at System.Composition.CompositionContext.GetExport[TExport](String contractName)
                           at System.Composition.CompositionContext.GetExport[TExport]()
                           at Microsoft.WinForms.Utilities.Shared.Mef.CompositionHostExtensions.GetRequiredExport[TExport](CompositionHost compositionHost)
                           at Microsoft.DotNet.DesignTools.Server.DesignToolsServer.<StartUpAsync>g__AddMefServiceToContainer|48_0[T]()
                           at Microsoft.DotNet.DesignTools.Server.DesignToolsServer.StartUpAsync(Boolean testMode, CancellationToken cancellationToken)
                           at Microsoft.DotNet.DesignTools.Server.DesignToolsServer.StartListeningAsync(Stream stream, TraceListener traceListener)
                           at Microsoft.DotNet.DesignTools.Server.Program.<>c__DisplayClass2_0.<<Main>b__1>d.MoveNext()

                        For information on how to troubleshoot the designer refer to the guide at https://aka.ms/winforms/designer/troubleshooting.
[12:35:29.004803] fail: Microsoft.DotNet.DesignTools.Client.ServerException: Failed to launch the design tools server process.
                           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
                           at Microsoft.VisualStudio.Threading.TplExtensions.<WithTimeout>d__5.MoveNext()
                        --- End of stack trace from previous location where exception was thrown ---
                           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
                           at Microsoft.DotNet.DesignTools.Client.Host.ServerProcess.<LaunchAsync>d__28.MoveNext()
                        --- End of stack trace from previous location where exception was thrown ---
                           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
                           at Microsoft.DotNet.DesignTools.Client.Host.ServerHostFactory.<CreateHostAsync>d__8.MoveNext()
                        --- End of stack trace from previous location where exception was thrown ---
                           at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
                           at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
                           at Microsoft.DotNet.DesignTools.Client.DesignToolsClientLoader.<CreateClientAsync>d__29.MoveNext()

                        For information on how to troubleshoot the designer refer to the guide at https://aka.ms/winforms/designer/troubleshooting.
[12:35:29.023802] warn: Cannot update selection in server process as Session is not connected.
[12:35:59.643728] warn: Cannot update selection in server process as Session is not connected.
.net visual-studio winforms windows-forms-designer
2个回答
1
投票

骂了三天才发现,它是WinForms.DataVisualization(1.9.2)和Infragistics的Infragistics.WinForms.Charts(2023.2)的组合。似乎两个包都导出一个“SeriesCollectionEditor”(?)。删除其中一个后,一切都会恢复正常。


0
投票

我没有任何答案,我既不使用 WinForms.DataVisualization,也不使用 Infragistics 的 Infragistics.WinForms.Charts。

  • 我的 4 个表单都不会再显示在设计器上。
  • 在运行时,所有表单都会显示,但我正在处理的最后一个表单 不再显示数据网格。

尝试过:

  • 从 Git 重新加载最后一个工作版本:不。
  • 从 VS 2024 重新安装到 2022 年。有效。但没能熬过一夜。醒来又不行了。
© www.soinside.com 2019 - 2024. All rights reserved.