Файл проекта неполный. Ожидаемый импорт отсутствует


95

После форматирования своего компьютера я переустановил Vs 2017 V 15.6.3 и установил SDK ASP.Net Core из Microsoft 2.1.4.

Но когда я создаю новое приложение ядра asp, VS не удалось с ошибкой

«Файл проекта не завершен. Ожидаемый импорт отсутствует»

Пожалуйста, кто-нибудь может помочь?

Ошибка после создания основного приложения ASP


Как вы «установили SDK ASP.Net Core из Microsoft 2.1.4»? Используя установщик Visual Studio или какой-то другой процесс?
Нил

вы можете опубликовать свой файл проекта?
Francesco B.

1
Я использовал эту ссылку для настройки .net core sdk microsoft.com/net/download/thank-you/…
Majd Albaho

4
Этот ответ помог мне stackoverflow.com/a/55529011/342113 . В настоящее время выясняется, что SDK 2.2.1xx совместимы с VS.NET 2017, а SDK 2.2.2XX - нет.
rsbarro

1
@rsbarro Совершенно верно! Здесь та же проблема. Поэтому и выложил как ответ .
Стивен Джеурис

Ответы:


18

Решено

  1. Даже после удаления определенной версии с панели управления в C: \ Program Files \ dotnet \ sdk будут файлы и папки с удаленной версией.

  2. Пожалуйста, перейдите и удалите папку с нежелательной версией

  3. Попробуйте перезагрузить проект

Это сработало для меня


69

Я была такая же проблема. В моем случае проблема была решена удалением global.json и appsettings.


9
Это сработало для меня, хотя, чтобы уточнить, мне просто пришлось удалить (/ переименовать) «global.json». Fwiw: Он содержал: {"sdk": {"version": "2.0.0"}}
ubienewbie

2
В моем случае на моем компьютере отсутствовала установка .NetCore версии 2.0.0, и она упоминалась в global.json. Я просто установил его, и он работал нормально.
Мухаммад Умар

3
dotnet --versionпоказывает 2.1.201, а global.json упомянул немного более низкую версию 2.1.101. Очевидно, версия должна точно соответствовать, чтобы она работала, без обратной совместимости. Или просто удалите файл, как предлагается в этом ответе.
GolezTrol 05

7
мне было достаточно удаления только global.json. Настройки приложения могут оставаться на месте
Wouter Janssens

12
Было бы неплохо указать в этом ответе папки global.json и appsettings.
fernacolo

35

Другая потенциальная причина - вы установили версию .NET Core, несовместимую с Visual Studio. . Это может быть не связано с исходным вопросом OP, поскольку он касается разных номеров версий, но поскольку я попал на эту страницу в поисках помощи, я подумал, что это может быть полезно другим.

На момент написания я установил .NET Core 2.2.203, который несовместим с Visual Studio 2017 (Professional 15.9.11).

В странице загрузки .NET Core указана отдельная загрузка для Visual Studio 2017. Обязательно загрузите ее, если собираетесь использовать Visual Studio 2017. Текущая поддерживаемая версия - .NET Core 2.2.106 .


Как ни странно, в моем приложении есть приложение N-уровня (UI, BLL и DAL). Проект BLL отлично загрузился с этой версией .NET Core. +1
Дэйв

Большое спасибо! Это работает! SDK 2.2.105 работает только с Visual Studio 15.9.8 или более ранней версии.
hubert17

обновление сообщества VS 2017 до версии 15.9.12 решило проблему в моем случае
GoldenAge

23

Вы можете проверить файл global.json, который вы можете найти в корневом каталоге решения, и убедиться, что целевая версия SDK в нем установлена ​​на вашем компьютере, или обновить его до той, которая у вас уже установлена, например, если у вас установлена ​​версия SDK 2.1.4. ваш global.json должен выглядеть так

{
  "sdk":
  {
    "version": "2.1.400"
  }
}   

1
Это было для меня. Версия "2.1.300" global.json, но 2.1.200& 2.1.403установлена; переход на 2.1.400 работал.
Паси Саволайнен

3
Сработало как изменение его на одну из установленных версий SDK, так и versionполное удаление атрибута
Саларос

2
У меня тоже сработало. Изменил версию, чтобы она соответствовала наиболее близкой к той, что у меня уже была в моей системе. Вы можете запустить «dotnet --versions», чтобы увидеть, что вы установили.
daudihus

2
dotnet --list-sdksи dotnet --list-runtimesчтобы увидеть все, что вы установили, dotnet --versionбудет показана текущая используемая версия.
nathanchere

1
Это было решением и для нас. В нашем случае у нас было несколько проектов на VS2017 с netcore 2.1; мы установили netcore 3, и больше не могли открывать проекты. Создание global.json в корневой папке проекта решило проблему
Джек Касас,

19

Восстановление последней установки Core сработало для меня


1
Мне тоже пришлось перезагрузиться, но это исправило для меня.
DTown

2
Для людей, ищущих «как» восстановить .NET Framework (работает и для Core), поищите «.NET Framework Repair Tool» в своей любимой поисковой системе. Выполнение только первого шага исправило это для меня.
KSwift87

2
также Панель управления W10 - Программы - Программы и компоненты, выбор установки и ремонта
Uzay

15

В моем случае у меня было установлено две версии Visual Studio (15.7 и 15.6). В версии 15.7 не было установленных веб-нагрузок, хотя .net core 2.1 RC1 уже был установлен. Я установил рабочую нагрузку asp.net в VS2017, а затем исправил установку ядра .net для хорошей меры. Определенно что-то в этом процессе поменяло местами мои c: \ program files (x86) \ dotnet и c "\ program files \ dotnet по этому пути, и Visual Studio (15.7) не открыла бы мой веб-проект.

Я просто отредактировал переменные системной среды, переместил папку x86 на одну вниз и, вуаля, снова открыл Visual Studio, и теперь она загрузила мой проект. Переменные системной среды


3
В моем случае c: \ Program Files \ dotnet \ был удален из моих PATH
micahtan

1
аааааааааааааааааааааася много времени, это был ответ для меня. СПАСИБО!
Шпальт

Установил NET4.7.1, потом все существующие проекты Net.Core рухнули. Магия «Двигаться вниз» вернула их обратно.
Юрий Щкатула

14

Эх, ошибка новичка, у меня был открыт Visual Studio SSDT, и я пытался открыть существующий проект .Net Core, который выдает ту же ошибку:

«Файл проекта не завершен. Ожидаемый импорт отсутствует»

Решением было использовать Visual Studio, а не SSDT , см. Help> About:

введите описание изображения здесь


1
После нескольких часов путаницы с управлением версиями ядра .NET это было для меня реальным решением. И для меня SSDT стал по умолчанию при открытии файла решения из папки, поэтому я тоже это исправил. Благодарность!
Alex

9

В последнее время я решил эту проблему пару раз, закрыв Visual Studio и выполнив следующие команды

  1. dotnet nuget locals -c все
  2. dotnet clean
  3. сборка dotnet

Кажется, бывают моменты, особенно в начале проекта, когда nuget выходит из строя (технический термин).


9

Я решил эту проблему, изменив первую строку в файле .csproj:

<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">

кому:

<Project Sdk="Microsoft.NET.Sdk">

9

После установки VS2019 у меня началась та же ошибка при открытии существующих решений .Net Core в VS2017.
В установщике Visual Studio я обновил VS2017 до последней версии (15.9.11), и проблема исчезла.

Позже, после обновления VS2019 до последней версии, у меня начались те же ошибки, и мне пришлось снова обновить VS2017.


5

Я начал получать эту ошибку, когда удалил все мои старые SDK для .NET Core и установил последний, 2.1.5 во время публикации. Я попробовал все решения здесь, но безуспешно, поэтому решил проверить, какая сейчас версия SDK после всей очистки, которую я сделал, потому что я думал, что это вызывает проблему, и был прав - запустил командную строку и написалdotnet --version и получил сообщение «Вы хотели запустить команды dotnet SDK? Пожалуйста, установите dotnet SDK из:». Странно, SDK установлен, но система его не видит. Затем я просмотрел переменные среды, и переменная PATH имела путь x86 для dotnet перед обычным путем для Program Files (x64). Поэтому я переместил x64 перед x86 и вуаля, все вернулось в норму.

Надеюсь, я кому-то помог.


Ты мне помог. Это только что произошло, когда я обновился с 2.2.3 до 2.2.4. Интересно, есть ли определенный порядок установки нового / удаления старого, который вызывает это.
MattOG

@MattOG, я перепробовал множество вариантов установки / удаления, но эта проблема возникает каждый раз. Думаю, к этому нужно просто привыкнуть;) В конце концов, это не так уж и важно, когда у нас есть такой источник, как stackoverflow.
Ивайло Димитров


4

У меня такая же проблема. Мне не удалось создать новый ASP .Net Core 2 на недавно установленном VS2017 или открыть существующий, который отлично работает на другом компьютере с VS2017.

Он начал работать для меня после удаления всех .NET Core Runtime и .NET Core Windows Server Hosting из Windows. Остались только SDK и все работает окончательно. введите описание изображения здесь

Наверное, мне нужно было удалить из Windows только .NET Core Runtimes или .NET Core Windows Server Hosting, и этого было бы достаточно.


На моем компьютере никогда не устанавливался ASP Core 2 SDK, проблема все еще присутствует даже после новой установки
alexlomba87

Работал у меня. После удаления Core Windows Server Hosting. нет перезапуска VS. Я просто перезагрузил проекты.
profimedica


3

У меня были те же симптомы из-за поврежденного SDK ядра dotnet (из командной строки мне не удалось запустить dotnet -v, где раньше я мог). Мой проект не удалось загрузить после неудачной установки веб-платформы IIS. Повторная установка .NET Core SDK решила проблему.


3

Я была такая же проблема. мне потребовалось некоторое время, чтобы понять это. В моем случае я пытался открыть новое приложение ASP .NET Core и получал 0 проектов, подобных представленному в этом посте.

Что я пробовал: я попытался изменить переменные среды в Control Panel \ System and Security \ System (щелкните дополнительные настройки)

введите описание изображения здесь

Затем щелкните Environment Variables

введите описание изображения здесь

Затем проверьте, включен ли путь dotnet, находится ли он в Program Files или Program files (x86) введите описание изображения здесь

Некоторые люди предлагали перейти на (x86) вверх, что основано на документации Microsoft.

Что устранило мою проблему: оказалось, что у меня была установлена ​​неправильная версия, и она несовместима с Visual Studio 2017 введите описание изображения здесь

Затем я удалил другие установки и переустановил нужную версию, совместимую с VS17 и работающую как по волшебству. Надеюсь, это поможет кому-то в будущем.


1
Это было частью того, что сработало для меня. Все остальные SDK на моей машине были 64-битными (и, следовательно, в «Program Files».) Мне пришлось установить последнюю версию Core for VS 2017 - 2.2.110 в качестве версии x86. Это входит в дерево «Program Files (x86)». Я удалил ранее добавленные операторы PATH в обычную папку «Program Files» и заменил их на «Program Files (x86)», и он снова работает!
Grandizer

Это мне помогло! Я удалил кучу SDK, автоматически установленную для меня Windows 10 Insider Preview, и случайно удалил тот, который нужен VS 2017. Благодарность!
Джефф ЛаФэй,

2

в моем случае я пошел в папку C: \ Program Files \ dotnet \ sdk, удалил папку предварительного просмотра sdk, затем в командной строке запустил:

dotnet sdk 2.1.200

чтобы установить правильную версию sdk для ядра asp.net. это устранило проблему.


2

У меня было такое же сообщение об ошибке. В моем случае. Мне пришлось установить набор инструментов кросс-платформенной разработки .NET Core .

Шаги:

  1. В Visual Studio перейдите в Инструменты> Получить инструменты и компоненты ...
  2. Измените установку в разделе «Рабочие нагрузки»: выберите кроссплатформенную разработку .NET Core и нажмите «Изменить».
  3. Перезапустите VS и перестройте свой проект.

1

Спасибо, ребята, мне пришлось переустановить старую версию Visual Studio 2017, и она работает хорошо. Моя версия VS - 15.4, и все в порядке


7
Версия 15.6.7 здесь, и проблема все еще существует. Я бы не стал отмечать это как принятый ответ, поскольку на самом деле это не решение для последних версий VS.
alexlomba87

docs.microsoft.com/en-us/dotnet/core/… Требуется VS2017 - 15.9.0
Гриффин

1

Это случилось со мной, когда я удалил экземпляр Visual Studio VS2015, который у меня работал бок о бок с VS2017.

Мне пришлось пойти и переустановить .Net Core sdk / runtime с версией x86. Я уже вручную делал их x64-версии, но не думал о 32-битной Visual Studio.

Это файлы:

  • dotnet-sdk-xxx-win-x86.exe

  • DotNetCore.xxx-WindowsHosting.exe


1

Удалите все папки bin и obj, созданные сборкой . Это сработало для меня после переименования проекта и попытки перезагрузить решение. Не совсем уверен в истинной причине несовместимой загрузки.


1

Я столкнулся с той же проблемой. Я запускал свой проект на .Net core 2.2. Я пробовал каждое решение, приведенное здесь, но ничего не помогло. Я отремонтировал свою визуальную студию, и теперь она работает нормально.


1

Я решил это, обновив Visual Studio до версии 2017 года.

Фактическая проблема заключалась в том, что версия ядра .net была более поздней, чем Visual Studio.

Перейдите в раздел «Справка»> «Проверить наличие обновлений», обновите Visual Studio.


0

У меня была такая же проблема с проектом ASP.net Core 2.0 после того, как я установил DotNetCore.2.0.5-WindowsHosting Framework на моем компьютере разработки. Я смог решить эту проблему после того, как деинсталлировал WindowsHosting Framework и все пакеты .net Core. После этого я переустановил пакет dotnet-sdk-2.1.200-win-x64, и все заработало.



0

Та же проблема ... мне потребовалось время, чтобы разобраться. Поскольку я работал над проектом ASP.NET Core, ориентированным на .NET Core 1.1, я думал, что мне все еще нужен пакет SDK для .NET Core 1.1. Поскольку у меня тоже был установлен .NET Core SDK 2.1, возник какой-то конфликт, и я не мог открыть файл проекта. После удаления .NET Core 1.1 я смог открыть свой проект.


0

Для решения запустите dotnet restore из командной строки.

Наконечник. Если вы удалили последнюю версию ядра .net, скажем, 2.1.403, и установили предыдущую, убедитесь, что папка 2.1.403 действительно удалена по пути

C: \ Program Files \ dotnet \ sdk \

У меня была проблема из-за того, что осталась пустая папка с 2.1.403


0

У меня та же проблема, и я снова запускаю Visual с правами администратора. Это помогает мне открыть проект номинально.


0

Оказалось, что мой проект зависел от другого проекта в решении, в котором возникли проблемы с зависимостями NuGet, что, в свою очередь, было связано с тем, что целевая платформа в свойствах проекта была пустой.

Я открыл .csprojфайл, чтобы проверить целевую платформу, загрузил ее и выбрал «восстановить», затем перезапустил Visual Studio и снова все в порядке!


0

У меня была такая же проблема при установке новой предварительной версии VS 2019. Я исправил ее, удалив последнее обновление, которое, в свою очередь, удалило самую последнюю загруженную версию ядра. Который, как я считаю, вызвал несовпадение.


0

Просто нужно перекрестно проверить версию вашей основной библиотеки .net для создания проекта с обновленной версией. Когда вы обновляете основную библиотеку, она не будет обновлена ​​до .csproj, вам нужно либо обновить ее вручную, либо удалить последний / обновленный основной файл sdk.

Чтобы проверить версию ядра .net --fire команда в cmd: - dotnet --version

Затем проверьте установленную библиотеку в программе и функциях - удаление последней библиотеки решает проблему без изменения одной строки

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.