组件' LiveCharts.Wpf.DefaultLegend'没有由网址' /LiveCharts.Wpf; component / defaultlegend.xaml'

时间:2017-06-16 08:48:14

标签: winforms visual-studio-2017 livecharts

我在winforms项目上编程了大约一个月。最近,其中一位表单设计者总是显示错误页面。

当项目刚刚加载到VS上时,没有错误。在我进行一些修改后,重建它将显示错误页面:enter image description here

  

组件' LiveCharts.Wpf.DefaultLegend'没有由URL' /LiveCharts.Wpf; component / 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'目录和几天前我将我的Documents目录移动到D驱动程序。

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

enter image description here

  

无法加载文件或程序集' LiveCharts.WinForms,Version = 0.9.6.0,Culture = neutral,PublicKeyToken = 0bc1f845d1ebb8df'或其中一个依赖。

设计师的源代码根本没有错误,无论是在构建时。执行文件可以健康运行。

1 个答案:

答案 0 :(得分:0)

当解决方案版本中存在多个实时图表dll副本时,通常会发生这种情况。
对我来说,它既在主可执行文件中使用,又在子文件夹中的插件类库中使用。效果是将Live Charts dll的两个副本放在不喜欢的不同文件夹中。

Packages.config

如果使用packages.config文件处理引用,则可以将其他项目的LiveCharts引用设置为“ CopyLocal” = false。这将停止生成该dll的多个副本。它将很乐意使用主项目中加载的副本。

包装参考

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

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

del $(TargetDir)LiveCharts.*

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