【问题标题】:VS2015 C# interactive: error CS7069: Reference to type 'Object' claims it is defined in 'System.Runtime', but it could not be foundVS2015 C# 交互:错误 CS7069:对类型“对象”的引用声称它是在“System.Runtime”中定义的,但找不到
【发布时间】:2016-04-19 15:47:36
【问题描述】:

我刚刚更新到VS2015 Update 2,并开始使用C# interactive window。我想在我的一个 .NET 4.0 目标库项目中的一个静态类中使用静态方法,所以我在解决方案资源管理器中右键单击该项目,然后选择 Initialize Interactive with Project。交互式窗口中的输出如下所示(为简洁起见,我用 '..' 替换了一些完整路径):

#reset
Resetting execution engine.
Loading context from 'CSharpInteractive.rsp'.
#r "..\src\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll"
#r "..\src\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll"
#r "..\src\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Core.dll"
#r "..\src\packages\Microsoft.Bcl.1.1.8\lib\net40\System.IO.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Net.dll"
#r "..\src\packages\Microsoft.Bcl.1.1.8\lib\net40\System.Runtime.dll"
#r "..\src\packages\Microsoft.Bcl.1.1.8\lib\net40\System.Threading.Tasks.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Web.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.Linq.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.DataSetExtensions.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\Microsoft.CSharp.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Data.dll"
#r "C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Assemblies\System.Net.Http.dll"
#r "C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.0\System.Xml.dll"
#r "MyDll.dll"
using MyDll;
(1,7): error CS7069: Reference to type 'Object' claims it is defined in 'System.Runtime', but it could not be found

注意最后那条讨厌的小线,挡住了我通往幸福的道路:

(1,7):错误 CS7069:对“对象”类型的引用声称它是在“System.Runtime”中定义的,但找不到

我获得了项目中类的智能感知,但每次尝试运行语句时都会遇到相同的错误。我仍然可以运行简单的事情,例如:

> string.Format("No one knows my {0}", "suffering")
"No one knows my suffering"
>

任何人对为什么会发生这种情况或如何解决它有任何想法?我会用任何 [不] 成功的建议修复来更新这个问题。

【问题讨论】:

  • 看起来like this,您当然需要记录您的项目类型。如果您认为它需要工作,请使用 connect.microsoft.com。
  • @HansPassant 我不确定如何将该答案映射到这个问题,但我尝试从交互式窗口执行System.Reflection.Assembly.Load(...)。我在System 下输入的任何地方都会出现红色波浪线,甚至尝试使用 using 语句using System.Reflection; - 这有用吗?
  • 是否可以在命令行界面 (csi) 上使用?
  • @PauloMorgado 你指的是哪一部分? “命令行界面”与我描述的交互式窗口有什么不同吗?我不知道其他窗口可以使用此功能。
  • 它总是很干净。你不#reset它。

标签: c# .net visual-studio-2015 read-eval-print-loop c#-interactive


【解决方案1】:

最终为我解决了这个问题的是在 C# Interactive window.:

#r "System.Runtime"

如果有人可以提供详尽的背景解释来说明为什么会这样,我很乐意为您提供可接受的答案。我只是走运了。

【讨论】:

【解决方案2】:

虽然添加答案似乎有点晚了,但它实际上仍然是 Visual Studio 2019 (v16.9.4) 的当前问题,或者至少对我来说...

在我的情况下,它与对 .NET Framework 标准包的引用无关,而是对我在解决方案中的一个项目的引用。

我按照以下步骤成功解决了这个问题:

  1. 从问题所在的项目中删除包/项目引用。

  2. 清理已发布的项目(要进行更多清理,您还可以从资源管理器中删除 bin/obj 文件夹)。

  3. 如果引用的是一个项目,CleanRebuild 是被引用的项目。

  4. 再次添加对包/项目的引用并在解决方案中重建所有内容。

希望对你有帮助!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    • 2018-10-21
    • 1970-01-01
    • 2018-04-11
    • 1970-01-01
    • 2021-08-01
    相关资源
    最近更新 更多