VS2015 C# интерактивный: ошибка CS7069: Ссылка на тип "Объект" утверждает, что она определена в "System.Runtime", но не может быть найдена
Я только что обновился до VS2015 Update 2 и начал играть с интерактивным окном C#. Я хотел использовать статический метод в статическом классе в одном из моих целевых проектов библиотеки.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", но не может быть найдена
Я получаю intellisense для классов в проекте, но я получаю ту же ошибку каждый раз, когда пытаюсь выполнить оператор. Я все еще могу запустить простые вещи, как:
> string.Format("No one knows my {0}", "suffering")
"No one knows my suffering"
>
У кого-нибудь есть идеи о том, почему это происходит или как это исправить? Я обновлю этот вопрос любыми [не] удачными предложенными исправлениями.
3 ответа
То, что в конечном счете исправило это для меня, входило в это право в Интерактивном окне C#.:
#r "System.Runtime"
Если есть кто-нибудь, кто может дать подробное объяснение того, почему это сработало, я бы хотел дать вам приемлемый ответ. Мне просто повезло.
Хотя может показаться немного поздно добавлять ответ, на самом деле это все еще возможная текущая проблема с Visual Studio 2019 (v16.9.4), или, по крайней мере, для меня ...
В моем случае это было связано не со ссылкой на стандартный пакет .NET Framework, а со ссылкой на один из моих проектов в решении.
Я успешно решил проблему, выполнив следующие действия:
Удалите ссылку на пакет / проект из проекта, в котором возникла проблема.
Очистите выданный проект ( для большей очистки вы также можете удалить папки bin / obj из проводника ).
Если ссылка на проект,
Clean
а такжеRebuild
указанный проект.Добавьте еще раз ссылку на пакет / проект и перестройте все в решении.
Надеюсь, поможет!
У меня была ссылка на несовместимый пакет, который вызвал эту ошибку. Пропущено во время обновления пакета. Удалены ссылки и исправлены пространства имен.