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

14

我试图在我的解决方案中使用WPF的Dynamic Data Display库。我在项目中添加了对DynamicDataDisplay.dll的引用。我还在.xaml文件中添加了一个命名空间,像这样:xmlns:d3="http://research.microsoft.com/DynamicDataDisplay/1.0"

当我尝试从Dynamic Data Display库中添加元素时,智能感知功能没有帮助我。当我在我的.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后,问题得到解决。


(来源:www.xup.in)


你能提供一些包含问题的XAML代码吗?看到你的代码如何工作可能会帮助其他人重现你的问题。另外,请检查你引用的类是否为public。 - Merlyn Morgan-Graham
我添加了一个代码示例,希望它有助于找到问题。它是在一个全新的 WPF 项目中测试的,只需添加对 DynamicDataDisplay.dll 的引用。 - Mario Pistrich
5
解锁 DLL 对我也有用!几乎需要将其作为另一个答案提交... - Evan Wondrasek
1
@mpistrich 你是个传奇。解锁 DLL 解决了问题。谢谢。 - Zaher Joukhadar
2
解除阻塞对我有效... - ingh.am
“解除阻塞对我也起作用了”,但我浪费了很多时间寻找答案,请将其发布为答案。 - Yog
4个回答

6

这似乎是一个模式参考,而不是一个程序集参考。

以下内容可能更加合适:

xmlns:d3="clr-namespace:Microsoft.Research.DynamicDataDisplay;assembly=DynamicDataDisplay"

http://msdn.microsoft.com/en-us/library/ms747086.aspx

编辑

我想我找到了你正在使用的库,所以我更新了XAML命名空间引用,我认为这将适合你。如果不行,请查看文档,或开始编辑一些代码,并找出ChartPlotter类所在的命名空间。


2

对于其他读者的一个额外提示:如果您的项目构建成功,但在尝试在设计器中加载视图时收到此错误消息,请确保您的程序集是x86或Any CPU,因为Visual Studio 2010是32位进程,无法在设计器中加载x64程序集。


将平台从 x64 更改为 Any CPU 解决了我的本地程序集问题(mlns:local="clr-namespace:<myNamespace>")。 - vinny

1
当我引用Dynamic Data Display库二进制版本中找到的DLL文件时,出现了相同的“无法加载元数据”错误。当我下载库的源代码并自己编译时,问题得到解决。在引用DynamicDataDisplay_0.3/sln/DynamicDataDisplay/Debug/bin下的DLL时,它可以正常工作。
我想问题可能与DLL的某些权限有关,正如问题结尾已经指出的那样 - 您可以“取消阻止”,请参见上文。

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接