Импортированный проект «C: \ Microsoft.CSharp.targets» не найден.


127

Я получил эту ошибку сегодня при попытке открыть Visual Studio 2008 проект в Visual Studio 2005:

Импортированный проект «C: \ Microsoft.CSharp.targets» не найден.


Я должен был переименовать свои ссылки с Microsoft.CSharp.Targetsк Microsoft.CSharp.targetsв .csprojфайлах.
Стефан

Ответы:


112

Откройте файл csproj в блокноте (или блокноте ++). Найдите строку:

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

и измените его на

<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />

22
Мой говорит: "<Import Project =" $ (MSBuildExtensionsPath32) \ ... "
Б. Клей Шеннон,

@Iomaxx, я исправил эту проблему, изменив цель сборки Monodevelop на Mono / .NET 4.0 с Mono / .NET 3.5.
Фрэнк

5
Мой уже сказал MSBuildBinPath, но он включил CompactFramework в пространство имен: <Import Project = "$ (MSBuildBinPath) \ Microsoft.CompactFramework.CSharp.targets" />
Teysz

Если вы используете Monodevelop, устанавливает пакеты: «mono-msbuild» и «mono-msbuild-sdkresolver». ПРИМЕЧАНИЕ. Проверено на Linux Manjaro.
Эдуардо Лучио

Вам нужно будет удалить пакет «msbuild-stable» (или эквивалентный), если он установлен. ПРИМЕЧАНИЕ. Проверено на Linux Manjaro.
Эдуардо Лучио

59

Это глобальное решение, не зависящее от конкретного пакета или корзины.

В моем случае я удалил папку Packages из корневого каталога.

Возможно, это происходит из-за того, что ваши пакеты есть, но компилятор не находит ссылки на них. поэтому сначала удалите старые пакеты и добавьте новые.

Шаги по добавлению новых пакетов

  • Сначала удалите папку пакетов ( она будет рядом или на один шаг выше текущей папки проекта ).
  • Затем перезапустите проект или решение.
  • Теперь перестройте файл решения.
  • Проект получит новые ссылки от менеджера пакетов nuGet. И ваша проблема решена.

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

В моем случае я даже не смог открыть свое решение в визуальной студии и не получил никакой помощи с другими ответами SO.


1
Как говорит Альф Мо, просто найдите этот файл где-нибудь еще на вашем компьютере и скопируйте его в папку, где он его ищет
Серж Саган

@SerjSagan: да, это поможет, но иногда вы не можете открыть даже файл решения в Visual Studio, тогда мое решение поможет ...
Бхарат,

5
У меня была эта проблема в Visual Studio для Mac, Microsoft.CSharp.targetsфайл по какой-то причине удалили! как вы сказали, я удалил packagesпапку и перезапустил Visual Studio, волшебным образом это сработало!
A-Sharabiani 08

1
Это исправило это для меня, но мой коллега смог заставить это работать впервые. Пока это работает, мне нужно еще кое-что найти!
JakePlatford

1
Хороший братан! Я потерял 1 час на этом
Хьюго Нава Копп

20

Для меня проблема заключалась в том, что путь к проекту содержал% 20 символов, потому что git добавил их вместо пробелов при клонировании репозитория. Другая проблема может заключаться в том, что путь к пакету слишком длинный.


1
Это было проблемой для меня. В имени проекта было пробел, поэтому имя каталога после git clone содержало% 20. Вы можете использовать, git clone <RepoUrl> <LocalDirName>чтобы указать имя каталога для клонирования, чтобы избежать% 20
Дэн Кук,

11

Эта ссылка в MSDN также очень помогает понять причину, по которой она не работает. $ (MSBuildToolsPath) - это путь к Microsoft.Build.Engine v3.5 (автоматически вставляется в файл проекта при создании в VS2008). Если вы пытаетесь собрать свой проект для .Net 2.0, убедитесь, что вы изменили этот путь на $ (MSBuildBinPath), который является путем к Microsoft.Build.Engine v2.0.


11

В моем случае мне не удалось загрузить в свое решение один из 5 проектов .

Это помогло закрыть Visual Studio, и мне пришлось удалить Microsoft.Net.Compilers.1.3.2 папку nuget в packagesпапке.

После этого снова откройте свое решение, и проект загрузится должным образом.

На всякий случай закройте все экземпляры VS, прежде чем удалять папку.


6

Раньше в файле csproj была следующая строка:

<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />

После удаления этого файла все работает нормально.


6

Если вы столкнулись с ошибкой, которая гласит Microsoft.CSharp.Core.targets not found, вот шаги, которые я предпринял, чтобы исправить свою:

  1. Откройте любую папку с предыдущими рабочими проектами и перейдите по ссылке, указанной в сообщении об ошибке, то есть выполните Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/поиск Microsoft.CSharp.Core.targetsфайла.

  2. Скопируйте этот файл и поместите его в нерабочий проект tools folder(то есть перейдите в папку инструментов в нерабочем проекте, как показано выше)

  3. Теперь закройте свой проект (если он был открыт) и снова откройте его.

Теперь он должен работать.

Кроме того, чтобы убедиться, что в вашем теперь открытом проекте Visual Studio все работает правильно, перейдите к Tools > NuGetPackage Manager > Manage NuGet Packages For Solution. Здесь вы можете найти ошибку, которая говорит, что CodeAnalysis.dll используется другим приложением.

Снова зайдите в tools folder, найдите указанный файл и удалите его. Вернись к Manage NuGet Packages For Solution. Вы найдете ссылку, по которой вас попросят перезагрузить, щелкните по ней, и все будет переустановлено.

Теперь ваш проект должен работать правильно.


3

Получил после переустановки винды. Visual Studio была установлена, и я мог видеть тип проекта Silverlight в окне «Новый проект», но открыть его не удалось. Решение было простым: мне пришлось установить среду выполнения Silverlight Developer и / или инструменты Microsoft Silverlight 4 для Visual Studio. Это может показаться глупым, но я пропустил это, потому что думал, что это должно работать, поскольку был доступен тип проекта Silverlight.


3

В моем случае я открыл свой файл .csproj в блокноте и удалил следующие три строки. Сработало как шарм:

<Import Project="..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props" Condition="Exists('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.1.0.0\build\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.0.0\build\Microsoft.Net.Compilers.props')" />
<Import Project="..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props" Condition="Exists('..\packages\Microsoft.Net.Compilers.1.3.2\build\Microsoft.Net.Compilers.props')" />

2

хорошо, так что, если он говорит это: между знаками gt / lt

Импортировать Project = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets" /

как исправить ошибку цели?

Я также обнаружил эту строку импорта в демонстрационном проекте (в частности, «Создайте свою собственную платформу MVVM» Роба Эйзенбурга).

Если вы замените этот импорт на тот, который предложен lomaxx VS2010 RTM, вам потребуется установить его .


2

В случае ошибок с Microsoft.WebApplications.targetsвы можете:

  1. Установите Visual Studio 2010 (или ту же версию, что и на машине разработки) на свой сервер TFS.
  2. Скопируйте « Microsoft.WebApplication.targets» из файла машины разработки на машину сборки TFS.

Вот пост.


1

Эта ошибка также может возникать при открытии проекта Silverlight, созданного в SL 4, когда у вас установлен SL 5.

Вот пример сообщения об ошибке: Импортированный проект «C: \ Program Files (x86) \ MSBuild \ Microsoft \ Silverlight \ v4.0 \ Microsoft.Silverlight.CSharp.targets» не найден.

Обратите внимание на v4.0.

Для решения отредактируйте проект и найдите:

<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>

И поменяйте его на v5.0.

Затем перезагрузите проект, и он откроется (если у вас не установлен SL 5).



0

Иногда проблема может быть в жестко запрограммированной версии VS в файле .csproj. Если у вас в csproj есть что-то вроде этого:

[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"

Вы должны проверить правильность номера (причина неправильного может заключаться в том, что проект был создан с другой версией Visual Studio). Если это не так, замените его текущей версией инструментов сборки ИЛИ используйте переменную VS:

[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"

0

Я столкнулся с этой проблемой при выполнении Ansible playbook, поэтому хочу добавить сюда свои 2 цента. Я заметил предупреждающее сообщение об отсутствии Visual Studio 14. Visual Studio версии 14 была выпущена в 2015 году, и решением моей проблемы была установка Visual Studio 2015 Professional на хост-машину моего агента Azure DevOps.


0

После попытки восстановления, закрытия VS, удаления неудачного пакета, повторного открытия, попытки восстановления, я несколько раз просто удалял все в пакетах, и когда я выполнял восстановление, он работал отлично.

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