WPF程序集引用丢失 – 项目仍在构建中
我试图在我的解决方案中使用WPF的动态数据显示库。 我在我的项目中添加了对DynamicDataDisplay.dll
的引用。 我还在.xaml中添加了一个命名空间,如下所示: xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"
当我尝试从动态数据显示库添加元素时,Intellisense没有帮助我。 当我在.xaml中输入类似的内容时:
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.
但奇怪的是它仍然编译。 有人可以告诉我我做错了什么吗?
下面是一个示例代码,它编译得很好,但在设计器中显示错误:
编辑:
我尝试了像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后问题得以解决。
http://sofzh.miximages.com/c%23/UNBLOCK.PNG
这似乎是架构引用,而不是程序集引用。
这样的事情可能会更好:
xmlns:d3="clr-namespace:Microsoft.Research.DynamicDataDisplay;assembly=DynamicDataDisplay"
http://msdn.microsoft.com/en-us/library/ms747086.aspx
编辑
我想我找到了你正在使用的库,所以我将XAML命名空间参考更新为我认为适合你的。 如果没有,请检查文档,或者开始编辑一些代码,并找出ChartPlotter类所在的命名空间。
对于其他读者的另一点:如果您成功构建项目,但是在尝试在设计器中加载视图时收到此错误消息,请确保您的程序集是x86或任何CPU,因为Visual Studio 2010是32位进程并且无法加载设计器中的x64程序集。
在引用动态数据显示库的二进制版本中找到的DLL文件时,我得到了相同的“无法加载元数据”错误。 当我下载库的源版本并自己编译时,问题就解决了。 在DynamicDataDisplay_0.3 / sln / DynamicDataDisplay / Debug / bin下引用DLL时,它工作正常。
我想问题是DLL的一些权限,正如问题末尾已经指出的那样 – 你可以“解锁它”,见上文。
我有类似的问题,我按照这里概述的步骤创建了第一个示例项目, https://github.com/Microsoft/InteractiveDataDisplay.WPF
目前适用于,
- NuGet包avostres.InteractiveDataDisplay.WPF v1.0和
- NuGet包InteractiveDataDisplay.WPF v1.0
- 我的项目目标框架是.NET 4.6.1 / VS Pro V15.7.3
它构建但是你得到一个运行时错误。 由于最近微软的修补,这似乎是一个兼容性问题。 使用NuGet安装额外的包,
- System.Reactive.Compatibility V4
这解决了我的问题。
我在StephanBartels的github论坛上找到了解决方案, https://github.com/louthy/echo-process/issues/19