Winforms 组件';LiveCharts.Wpf.DefaultLegend';没有URL标识的资源'/LiveCharts.Wpf;component/defaultlegend.xaml';

Winforms 组件';LiveCharts.Wpf.DefaultLegend';没有URL标识的资源'/LiveCharts.Wpf;component/defaultlegend.xaml';,winforms,visual-studio-2017,livecharts,Winforms,Visual Studio 2017,Livecharts,我已经在一个winforms项目上编程一个月了。最近一个表单设计者总是显示一个错误页面 当项目刚刚加载到VS上时,没有错误。在我进行一些修改后,然后重新生成,它将显示以下错误页面: 组件“LiveCharts.Wpf.DefaultLegend”没有URL“/LiveCharts.Wpf”标识的资源;组件/defaultlegend.xaml' 调用堆栈显示: at System.Windows.Application.LoadComponent(Object component, Uri re

我已经在一个winforms项目上编程一个月了。最近一个表单设计者总是显示一个错误页面

当项目刚刚加载到VS上时,没有错误。在我进行一些修改后,然后重新生成,它将显示以下错误页面:

组件“LiveCharts.Wpf.DefaultLegend”没有URL“/LiveCharts.Wpf”标识的资源;组件/defaultlegend.xaml'

调用堆栈显示:

at System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
at LiveCharts.Wpf.DefaultLegend.InitializeComponent() in c:\Users\btord\Documents\Projects\LiveCharts\WpfView\DefaultLegend.xaml:line 1
at LiveCharts.Wpf.Charts.Base.Chart..ctor() in c:\Users\btord\Documents\Projects\LiveCharts\WpfView\Charts\Base\Chart.cs:line 82
at LiveCharts.Wpf.CartesianChart..ctor() in c:\Users\btord\Documents\Projects\LiveCharts\WpfView\CartesianChart.cs:line 40
at LiveCharts.WinForms.CartesianChart..ctor() in c:\Users\btord\Documents\Projects\LiveCharts\WinFormsView\CartesianChart.cs:line 46
at Controls.Chart.MyChart.InitializeComponent()
at Controls.Chart.MyChart..ctor() 
我检查了路径,但没有找到“c:\Users\btord”目录,几天前我将文档目录移动到了D驱动程序

有时,在我构建发布版后,它会显示另一个错误页面:

无法加载文件或程序集“LiveCharts.WinForms,版本=0.9.6.0,区域性=中性,PublicKeyToken=0bc1f845d1ebb8df”或其依赖项之一


而且,设计器的源代码中根本并没有错误,在构建时也并没有错误。执行文件可以正常运行。

在解决方案构建中存在多个live charts dll副本时,似乎通常会发生这种情况。
对我来说,它被用于主可执行文件和子文件夹中的插件类库构建中。效果是在不同的文件夹中有两个LiveCharts dll的副本,这是它不喜欢的

Packages.config

如果使用packages.config文件处理引用,您可以将额外项目的LiveCharts引用设置为“CopyLocal”=false。这将停止在生成中包含dll的多个副本。它将愉快地使用主项目中加载的副本

包装参考资料

遗憾的是,在使用较新样式的包引用时,没有不复制文件的选项。 在构建后删除额外副本似乎是我找到的最简单的解决方法

在“项目属性”的“生成事件”页面的“生成后事件”命令行框中添加

del$(TargetDir)动态图表。*


$(TargetDir)是您的项目输出路径。

在解决方案构建中存在多个live charts dll副本时,似乎通常会发生这种情况。
对我来说,它被用于主可执行文件和子文件夹中的插件类库构建中。效果是在不同的文件夹中有两个LiveCharts dll的副本,这是它不喜欢的

Packages.config

如果使用packages.config文件处理引用,您可以将额外项目的LiveCharts引用设置为“CopyLocal”=false。这将停止在生成中包含dll的多个副本。它将愉快地使用主项目中加载的副本

包装参考资料

遗憾的是,在使用较新样式的包引用时,没有不复制文件的选项。 在构建后删除额外副本似乎是我找到的最简单的解决方法

在“项目属性”的“生成事件”页面的“生成后事件”命令行框中添加

del$(TargetDir)动态图表。*


$(TargetDir)是您的项目输出路径。

btord
是此开源项目的创建者,此信息内置于程序集中,因此您可以在堆栈跟踪中看到此文件夹。请尝试从nuget package manager卸载并重新安装包
LiveCharts.WinForms
,然后重新生成解决方案。看起来有一个依赖项不知怎么丢失了。@kennyzx谢谢问题似乎已经解决了,希望不会再次出现。此外,还需要重新安装LiveCharts.Wpf包。我选择重新安装所有LiveCharts软件包。@kennyzx很抱歉,问题再次出现。重新安装似乎没有用。
btord
是此开源项目的创建者,此信息内置在程序集中,因此您可以在堆栈跟踪中看到此文件夹。请尝试从nuget package manager卸载并重新安装包
LiveCharts.WinForms
,然后重新生成解决方案。看起来有一个依赖项不知怎么丢失了。@kennyzx谢谢问题似乎已经解决了,希望不会再次出现。此外,还需要重新安装LiveCharts.Wpf包。我选择重新安装所有LiveCharts软件包。@kennyzx很抱歉,问题再次出现。看来重新安装是没有用的。