我正在尝试在我的解决方案中使用WPF的动态数据显示库。我在项目中添加了对DynamicDataDisplay.dll
的引用。我还在.xaml中添加了一个命名空间,如下所示:xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
当我尝试从动态数据显示库添加元素时,Intellisense没有帮助我。当我在.xaml中输入类似的东西时:
<d3:ChartPlotter></d3:ChartPlotter>
Visual Studio会将其标记为错误,例如:
The type 'd3:ChartPlotter' was not found. Verify that you are not missing an
assembly reference and that all referenced assemblies have been built.
但奇怪的是它仍在编译中。 有人可以告诉我我做错了吗?
下面是一个示例代码,它编译得很好,但在设计器中显示错误:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
Title="MainWindow" Height="350" Width="525">
<Grid>
<d3:ChartPlotter></d3:ChartPlotter>
</Grid>
修改
我尝试了像Merlyn Morgan-Graham建议的名称空间声明,但它仍然不起作用。发生了另一个错误:
Unable to load the metadata for assembly 'DynamicDataDisplay'.
This assembly may have been downloaded from the web.
See http://go.microsoft.com/fwlink/?LinkId=179545. The following error was encountered
during load: etc.
似乎需要手动取消阻止下载的程序集。这可以在Windows文件属性中完成。解除阻塞并重新启动Visual Studio后,问题就解决了。
答案 0 :(得分:6)
这似乎是架构引用,而不是程序集引用。
这样的事情可能会更好:
xmlns:d3="clr-namespace:Microsoft.Research.DynamicDataDisplay;assembly=DynamicDataDisplay"
http://msdn.microsoft.com/en-us/library/ms747086.aspx
修改强>
我认为我找到了您正在使用的库,因此我将XAML命名空间参考更新为认为对您有用的内容。如果没有,请检查文档,或者开始编辑一些代码,并找出ChartPlotter类所在的命名空间。
答案 1 :(得分:2)
其他读者的另一点:如果您成功构建项目,但在尝试在设计器中加载视图时收到此错误消息,请确保您的程序集是x86或任何CPU,因为Visual Studio 2010是32位进程并且无法在设计器中加载x64程序集。
答案 2 :(得分:1)
在引用动态数据显示库的二进制版本中找到的DLL文件时,我得到了相同的“无法加载元数据”错误。当我下载库的源版本并自己编译时,问题就解决了。在DynamicDataDisplay_0.3 / sln / DynamicDataDisplay / Debug / bin下引用DLL时,它工作正常。
我认为问题在于DLL的一些权限,正如问题末尾已经指出的那样 - 你可以“解锁它”,见上文。
答案 3 :(得分:0)
我遇到了类似的问题,我正在按照以下步骤创建第一个示例项目, https://github.com/Microsoft/InteractiveDataDisplay.WPF
这当前适用于
它可以构建,但是会出现运行时错误。由于Microsoft最近进行了修补,这似乎是一个兼容性问题。使用NuGet安装其他软件包
这为我解决了这个问题。
我在这里找到了StephanBartels在github论坛上讨论的修复程序, https://github.com/louthy/echo-process/issues/19