WPF程序集引用丢失 - 项目仍在构建中

时间:2010-08-08 00:35:11

标签: c# wpf assemblies

我正在尝试在我的解决方案中使用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后,问题就解决了。

http://www.xup.in/pic,13990010/Unblock.PNG

4 个答案:

答案 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

这当前适用于

  • NuGet软件包avostres.InteractiveDataDisplay.WPF v1.0和
  • NuGet软件包InteractiveDataDisplay.WPF v1.0
  • 我的项目目标框架是.NET 4.6.1 / V.S Pro V15.7.3

它可以构建,但是会出现运行时错误。由于Microsoft最近进行了修补,这似乎是一个兼容性问题。使用NuGet安装其他软件包

  • System.Reactive.Compatibility V4

这为我解决了这个问题。

我在这里找到了StephanBartels在github论坛上讨论的修复程序, https://github.com/louthy/echo-process/issues/19