Ответы:
Откройте файл csproj в блокноте (или блокноте ++). Найдите строку:
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
и измените его на
<Import Project="$(MSBuildBinPath)\Microsoft.CSharp.targets" />
Это глобальное решение, не зависящее от конкретного пакета или корзины.
В моем случае я удалил папку Packages из корневого каталога.
Возможно, это происходит из-за того, что ваши пакеты есть, но компилятор не находит ссылки на них. поэтому сначала удалите старые пакеты и добавьте новые.
Шаги по добавлению новых пакетов
Это неправильное решение, но я разместил его здесь, потому что столкнулся с той же проблемой.
В моем случае я даже не смог открыть свое решение в визуальной студии и не получил никакой помощи с другими ответами SO.
Microsoft.CSharp.targets
файл по какой-то причине удалили! как вы сказали, я удалил packages
папку и перезапустил Visual Studio, волшебным образом это сработало!
Для меня проблема заключалась в том, что путь к проекту содержал% 20 символов, потому что git добавил их вместо пробелов при клонировании репозитория. Другая проблема может заключаться в том, что путь к пакету слишком длинный.
git clone <RepoUrl> <LocalDirName>
чтобы указать имя каталога для клонирования, чтобы избежать% 20
Эта ссылка в MSDN также очень помогает понять причину, по которой она не работает. $ (MSBuildToolsPath) - это путь к Microsoft.Build.Engine v3.5 (автоматически вставляется в файл проекта при создании в VS2008). Если вы пытаетесь собрать свой проект для .Net 2.0, убедитесь, что вы изменили этот путь на $ (MSBuildBinPath), который является путем к Microsoft.Build.Engine v2.0.
В моем случае мне не удалось загрузить в свое решение один из 5 проектов .
Это помогло закрыть Visual Studio, и мне пришлось удалить Microsoft.Net.Compilers.1.3.2
папку nuget в packages
папке.
После этого снова откройте свое решение, и проект загрузится должным образом.
На всякий случай закройте все экземпляры VS, прежде чем удалять папку.
Раньше в файле csproj была следующая строка:
<Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v10.0\WebApplications\Microsoft.WebApplication.targets" />
После удаления этого файла все работает нормально.
Если вы столкнулись с ошибкой, которая гласит Microsoft.CSharp.Core.targets not found
, вот шаги, которые я предпринял, чтобы исправить свою:
Откройте любую папку с предыдущими рабочими проектами и перейдите по ссылке, указанной в сообщении об ошибке, то есть выполните Projects/(working project name)/packages/Microsoft.Net.Compilers.1.3.2/tools/
поиск Microsoft.CSharp.Core.targets
файла.
Скопируйте этот файл и поместите его в нерабочий проект tools folder
(то есть перейдите в папку инструментов в нерабочем проекте, как показано выше)
Теперь закройте свой проект (если он был открыт) и снова откройте его.
Теперь он должен работать.
Кроме того, чтобы убедиться, что в вашем теперь открытом проекте Visual Studio все работает правильно, перейдите к Tools > NuGetPackage Manager > Manage NuGet Packages For Solution
. Здесь вы можете найти ошибку, которая говорит, что CodeAnalysis.dll используется другим приложением.
Снова зайдите в tools folder
, найдите указанный файл и удалите его. Вернись к Manage NuGet Packages For Solution
. Вы найдете ссылку, по которой вас попросят перезагрузить, щелкните по ней, и все будет переустановлено.
Теперь ваш проект должен работать правильно.
Получил после переустановки винды. Visual Studio была установлена, и я мог видеть тип проекта Silverlight в окне «Новый проект», но открыть его не удалось. Решение было простым: мне пришлось установить среду выполнения Silverlight Developer и / или инструменты Microsoft Silverlight 4 для Visual Studio. Это может показаться глупым, но я пропустил это, потому что думал, что это должно работать, поскольку был доступен тип проекта Silverlight.
В моем случае я открыл свой файл .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')" />
хорошо, так что, если он говорит это: между знаками gt / lt
Импортировать Project = "$ (MSBuildExtensionsPath) \ Microsoft \ Silverlight \ v3.0 \ Microsoft.Silverlight.CSharp.targets" /
как исправить ошибку цели?
Я также обнаружил эту строку импорта в демонстрационном проекте (в частности, «Создайте свою собственную платформу MVVM» Роба Эйзенбурга).
Если вы замените этот импорт на тот, который предложен lomaxx VS2010 RTM, вам потребуется установить его .
Эта ошибка также может возникать при открытии проекта 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).
Я удалил папку obj, а затем проект загрузился, как ожидалось.
Иногда проблема может быть в жестко запрограммированной версии VS в файле .csproj. Если у вас в csproj есть что-то вроде этого:
[...]\VisualStudio\v12.0\WebApplications\Microsoft.WebApplication.targets"
Вы должны проверить правильность номера (причина неправильного может заключаться в том, что проект был создан с другой версией Visual Studio). Если это не так, замените его текущей версией инструментов сборки ИЛИ используйте переменную VS:
[...]\VisualStudio\v$(VisualStudioVersion)\WebApplications\Microsoft.WebApplication.targets"
Я столкнулся с этой проблемой при выполнении Ansible playbook, поэтому хочу добавить сюда свои 2 цента. Я заметил предупреждающее сообщение об отсутствии Visual Studio 14. Visual Studio версии 14 была выпущена в 2015 году, и решением моей проблемы была установка Visual Studio 2015 Professional на хост-машину моего агента Azure DevOps.
Microsoft.CSharp.Targets
кMicrosoft.CSharp.targets
в.csproj
файлах.