【问题标题】:System.IObserver'1<T0> is defined in an assembly that is not referenced. You must add a reference to assemblySystem.IObserver'1<T0> 在未引用的程序集中定义。您必须添加对程序集的引用
【发布时间】:2012-03-12 15:46:43
【问题描述】:

我从源代码管理中检查了一些代码,并在尝试构建时收到以下错误:

类型“System.IObserver`1”在一个程序集中定义,该程序集是 未参考。您必须添加对程序集的引用 'System.Observable,版本=1.0.0.204,文化=中性, PublicKeyToken=31bf3856ad364e35'

所以第一个停靠港是 Google。看起来我需要 Rx 框架。所以我下载了Reactive Extensions experimental release。我完全安装了它,关闭了 VS2010 SP1,然后重新进入。得到同样的错误。

我还需要做什么?

【问题讨论】:

  • 您是否尝试添加它要求的参考?
  • 您安装了它,但您是否将程序集作为参考添加到您的项目中?
  • System.IObservable&lt;T&gt; 已添加到 .NET 4 中的 MSCORLIB。早期的预发布(至少)Rx 版本支持早期版本的 .NET。项目的目标是什么版本的 .NET?
  • @Richard: IObserver&lt;T&gt;IObservable&lt;T&gt; 不一样!
  • @DanielHilgarth 哎呀:错字。替换为System.IObserver&lt;T&gt; 仍然适用。

标签: c# .net visual-studio-2010 silverlight-4.0 reference


【解决方案1】:

如消息所述,您的项目需要引用 System.Observable 程序集。简单地安装 Rx 框架并不会添加对您项目的引用...

【讨论】:

  • 没有这样的库。至少,Visual Studio 2013 没有为面向 .NET 4.5 的项目找到它
  • 我添加了,但没有任何改变。同样的信息。最后,我在一个旧项目中找到了“System.Observable.dll”,并手动添加了该引用。
  • @Serge 你是对的:就像问题本身的问题一样:System.Observable.dll 不再存在。根据您需要的 IObserver 版本,它位于 MSCORLIB 或 System.Reactive.dll 中。您很可能在项目中看到此错误,因为您正在引用一个库,该库是针对非常旧版本的响应式扩展构建的。
【解决方案2】:

您已安装所需的扩展,但仍需要将其作为参考添加到您的项目中。

【讨论】:

    【解决方案3】:

    尝试从 NuGet 下载。右键单击,“管理 NuGet”...在线搜索“Rx_Exper..”

    http://nuget.org/packages/Rx_Experimental-Silverlight/1.1.11111

    【讨论】:

      【解决方案4】:

      在 Visual Studio 中

      • 右键单击项目的 References 文件夹
      • 点击添加参考...
      • 在“添加参考”窗口中,从“程序集”>>“扩展”中选择
      • 从列表中单击 System.Observable
      • 点击添加

      问题解决了

      【讨论】:

      • 没有这样的库。 .NET 4.5
      猜你喜欢
      • 1970-01-01
      • 2022-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-09-28
      • 2019-10-16
      • 1970-01-01
      • 2012-03-31
      相关资源
      最近更新 更多