You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Visual Studio 2019 XAML Designer 持续抛出System.ArgumentException求助

WPF XAML Designer 持续抛出 System.ArgumentException 及进程终止问题排查

看起来你被WPF XAML设计器的顽固问题缠住了——不管新建什么解决方案,都卡在System.ArgumentException(提示“An item with the same key has already been added”),首次启动还会触发设计器进程意外终止的System.Runtime.Remoting.RemotingException。先梳理下你的问题细节和已尝试的方案,再给出几个针对性的排查步骤:

问题概述

新建WPF App模板项目后,始终无法进入XAML Designer,所有解决方案均出现该问题。首次启动设计器时还会触发额外的进程终止错误。

已尝试的解决方案及结果

  • 删除C:\下的Program文件:从未拥有该文件,无法操作
  • 切换目标平台为x86、重新编译并重启窗口:结合不同构建配置尝试后无效
  • 重装Visual Studio 2019:问题仍未解决
  • 使用干净Windows 10虚拟机+纯净VS2019:未尝试,且不愿在虚拟机中开发
  • 删除shadowcache:未进行尝试

系统及安装信息

  • Windows 10 Enterprise Build 18362(初始安装介质为德语,后切换为英语)
  • Visual Studio 2019及相关程序均为默认路径安装

错误堆栈跟踪

System.ArgumentException

An item with the same key has already been added.
at System.ThrowHelper.ThrowArgumentException(ExceptionResource resource)
at System.Collections.Generic.Dictionary2.Insert(TKey key, TValue value, Boolean add) at System.Collections.Generic.Dictionary2.Add(TKey key, TValue value)
at Microsoft.VisualStudio.DesignTools.Utility.Telemetry.VsTelemetryService.RegisterDesignerProcessSession(Int32 pid)
at Microsoft.VisualStudio.DesignTools.Utility.DesignerSessionTracker.RecordDesignerStart(Int32 processID, String isolationTargetIdentifier, String buildConfiguration)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.Primitives.ProcessDomainFactory.ProcessIsolationDomain..ctor(ProcessDomainFactory factory, IIsolationBoundary boundary, AppDomainSetup appDomainInfo, IIsolationTarget isolationTarget, String baseDirectory)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.Primitives.ProcessDomainFactory.CreateIsolationDomain(IIsolationBoundary boundary)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.Primitives.IsolationBoundary.Initialize()
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.Primitives.IsolationBoundary.CreateInstance[T](Type type)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolatedObjectFactory.Initialize()
at Microsoft.VisualStudio.DesignTools.DesignerHost.Services.VSIsolationService.CreateObjectFactory(IIsolationDomainFactory isolationDomainFactory, IObjectCatalog catalog)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolationService.CreateLease(IIsolationDomainFactory domainFactory)
at Microsoft.VisualStudio.DesignTools.DesignerContract.IsolatedDesignerService.CreateLease(IIsolationDomainFactory domainFactory, CancellationToken cancelToken, DesignerServiceEntry& entry, IServiceProvider serviceOverrides)
at Microsoft.VisualStudio.DesignTools.DesignerContract.IsolatedDesignerService.IsolatedDesignerView.CreateDesignerViewInfo(CancellationToken cancelToken)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolatedTaskScheduler.InvokeWithCulture[T](CultureInfo culture, Func2 func, CancellationToken cancelToken) at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolatedTaskScheduler.<>c__DisplayClass9_01.b__0()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()

更新:首次启动设计器的额外错误

System.Runtime.Remoting.RemotingException [] Designer process terminated unexpectedly!
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.Primitives.ProcessDomainFactory.ProcessIsolationDomain.Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IIsolationDomain.CreateInstance(String assemblyName, String assemblyCodeBase, String typeName)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.Primitives.IsolationBoundary.Initialize()
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.Primitives.IsolationBoundary.CreateInstance[T](Type type)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolatedObjectFactory.Initialize()
at Microsoft.VisualStudio.DesignTools.DesignerHost.Services.VSIsolationService.CreateObjectFactory(IIsolationDomainFactory isolationDomainFactory, IObjectCatalog catalog)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolationService.CreateLease(IIsolationDomainFactory domainFactory)
at Microsoft.VisualStudio.DesignTools.DesignerContract.IsolatedDesignerService.CreateLease(IIsolationDomainFactory domainFactory, CancellationToken cancelToken, DesignerServiceEntry& entry, IServiceProvider serviceOverrides)
at Microsoft.VisualStudio.DesignTools.DesignerContract.IsolatedDesignerService.IsolatedDesignerView.CreateDesignerViewInfo(CancellationToken cancelToken)
at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolatedTaskScheduler.InvokeWithCulture[T](CultureInfo culture, Func2 func, CancellationToken cancelToken) at Microsoft.VisualStudio.DesignTools.DesignerContract.Isolation.IsolatedTaskScheduler.<>c__DisplayClass9_01.b__0()
at System.Threading.Tasks.Task`1.InnerInvoke()
at System.Threading.Tasks.Task.Execute()

下一步排查建议

  1. 删除ShadowCache缓存:设计器的临时缓存可能损坏,路径一般为%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS2019版本号>\Designer\ShadowCache。关闭VS后删除该文件夹,再重新打开项目尝试启动设计器。
  2. 修复VS安装组件:打开Visual Studio Installer,选择"修改",确认".NET Desktop Development"工作负载下的"XAML Designer"组件已勾选,然后点击"修复"按钮重新修复VS组件,确保没有损坏或缺失。
  3. 清理VS组件模型缓存:删除%LOCALAPPDATA%\Microsoft\VisualStudio\<你的VS2019版本号>\ComponentModelCache目录下的所有文件,重启VS后再测试设计器。
  4. 统一系统与VS语言设置:你的系统从德语切换为英语可能存在配置残留,尝试将系统区域设置和VS的语言设置统一为英语(或德语),重启系统后再尝试启动设计器。
  5. 排查第三方扩展冲突:用devenv /SafeMode命令启动VS(安全模式下会禁用所有第三方扩展),如果设计器能正常工作,再逐个启用扩展,找出导致冲突的那个扩展并卸载或更新。

内容的提问来源于stack exchange,提问作者erri120

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.14 08:11:19