Не удалось загрузить задачу BuildTasks.Csc из сборки?


97

Я чувствую себя виноватым, задавая такой вопрос здесь, но я в растерянности и буду признателен за помощь.

Доказательство концепции, такое как веб-приложение, было создано на одном ПК и размещено в репозитории для загрузки на другой ПК в другом месте. Первоначально была настроена функция автоматической сборки, при которой Azure будет автоматически создавать и публиковать при регистрации, но она была удалена. Вещи работали на обоих концах, пока одна сторона не включила массу исключенных изменений. Теперь я вижу следующую ошибку:

Задачу «Microsoft.CodeAnalysis.BuildTasks.Csc» не удалось
загрузить из сборки ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ build .. \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll. Не удалось загрузить файл или сборку 'file: /// ... \ packages \ Microsoft.Net.Compilers.1.0.0 \ tools \ Microsoft.Build.Tasks.CodeAnalysis.dll' или одну из его зависимостей. Система не может найти указанный файл. Убедитесь, что объявление правильное, что сборка и все ее зависимости доступны и что задача содержит открытый класс, реализующий Microsoft.Build.Framework.ITask.

Есть ли у кого-нибудь предложения, с чего начать поиск проблемы?


Попробуйте это решение kx.cloudingenium.com/programming/net/…
Pramod Sutar

Ответы:


117

Оказывается, пакеты NuGet были зафиксированы в репозитории и все сломали. Удаление каталога project \ project \ packages из репозитория решило все проблемы сборки, поскольку NuGet автоматически извлекает пакеты при сборке.


Убедитесь, что вы включили фактическую папку пакетов в VSTS, а также содержимое ... Я сделал только содержимое пакетов и получил ошибку
SteveC

1
У меня есть пакеты nuget, зафиксированные во всех моих проектах. Проблема только в том, что когда вы хотите добавить их в систему управления версиями, файлы * .dll по умолчанию являются «исключенными элементами», поэтому вы фиксируете только пустые каталоги, а не свои nugets. Вот почему даже восстановление nuget не помогает, потому что каталоги на месте, поэтому nuget думает, что все в порядке.
Jiří Herník

Подобное решение темы
Pramod Sutar

Не знаю, почему это сработало ... В чем причина?
Ричард Дуэрр

65

Я получил эту ошибку, когда создал новую ветку для своего проекта.

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

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

В любом случае, просто хотел поделиться.


6
Спасибо! Для меня сначала это была папка пакета. Тогда у меня все еще была ошибка, но перезапуск VS работал :)
dsnunez

35

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


1
Этот мне помог. Я попытался запустить существующий проект ASP.NET в VS 2015 в Parallels, и он дал мне указанную выше ошибку. Удаление папок bin и packages, перезапуск VS и чистая сборка сделали свое дело!
A3mercury

18

Я пробовал все описанные ранее решения, но ни одно из них не помогло.

Что решило это для меня , было обновить Microsoft.Net.Compilers из NuGet Package Manager


2
У меня была противоположная проблема. Я был слишком оптимистичен и скачал последнюю версию RC. Когда я вернулся к последней стабильной версии, все было в порядке.
Cool Blue

1
Я обновился с 2.8 до 3.1.1, и это устранило мою проблему. Спасибо!
Dan Csharpster

14
  • Щелкните правой кнопкой мыши свое решение.
  • Перейдите в раздел "Управление пакетами Nuget".
  • Ищи Microsoft.Net.Compilers .
  • При необходимости установите или обновите зависимые проекты.

6

Повторная сборка, чистое решение и перезапуск Visual Studio сработали для меня.


1
Да, здесь тоже самое, но просто перезапуска VS было недостаточно - мне пришлось перезагрузить компьютер, и все прошло хорошо.
Billious

Перезагрузка моего компьютера сделала свое дело. Не уверен, нужно ли мне делать все чистки и переустановки пакетов nuget.
Дон Роллинг

5

Удаление пакета и очистка раствора решили эту проблему для меня.


4

Удаление этих трех каталогов решает проблему.

  • / пакеты
  • / bin
  • / obj

ПРИМЕЧАНИЕ : удалите и / bin, и / obj из всех проектов, включенных в решение (включая тестовые проекты).


3

Проблема скрывается на TFS, вам нужно удалить папку TestProject ... \ packages из TFS, зарегистрируйтесь, удалите ее из локального каталога и выполните сборку заново. Работал!



3

Используйте следующий шаг:

1) Удалите папку пакета.
2) закрыть визуальную студию.
3) откройте проект и перестройте проект.


2

В моем случае: это работает для меня.

Оказалось, что мой товарищ по команде уже начал изучать разработку Windows 10, и на его компьютере был установлен Microsoft Build Tools 2015.

Я установил программное обеспечение с https://www.microsoft.com/en-us/download/details.aspx?id=48159, и проблема была решена.


1

В моем случае решение было:

Используйте проводник Windows и перейдите к неправильному пути: C: \ MyApplication \ Code \ Main \ ABCProject \ ABCProject.UI \ Bin

Щелкните правой кнопкой мыши папку bin> выберите свойства> снимите флажок только для чтения.


1

В моем случае решение было:

  1. Щелкните правой кнопкой мыши на решении.
  2. Перейдите в раздел «Управление пакетами Nuget для этого решения».
  3. Ищи Microsoft.CodeDom.Providers.DotNetCompilerPlatform .
  4. Удалите искомый пакет.
  5. Перезапустите Visual Studio.


0

Щелкните правой кнопкой мыши на решении. Перейдите в раздел «Управление пакетами Nuget для этого решения». Найдите Microsoft.Net.Compilers в разделе "Обзор".



0

В сообществе vs2017 появился новый пункт в меню "сборка". Он исчез после того, как я его использовал, и назывался что-то вроде « Оптимизировать пакеты сборки проекта. ». Я щелкнул по нему, и он все исправил, просто перезапустил и т.д. Я сделал это на двух машинах.

То, что он сделал, было удалено Microsoft.net.compilers 2.10.0 и заменено наMicrosoft.CodeDom.Providers.DotNetCompilerPlatform 2.0.1

Итак, поехали - больше автомагии ...


0

Мой проект был построен с помощью .Net Core 2.2, но у меня была установлена ​​предварительная версия .Net core 3.0. Я удалил .Net Core 3.0 из своей системы и просмотрел все свои библиотеки классов, удалив Microsoft.Net.Compilers 3.0, затем перестроил, и все заработало.


0

Я переместил свое решение с одного диска на другой, и один из файлов не мог быть скопирован, потому что "используется", для которого я нажимаю кнопку "Игнорировано", вызывая ошибку, описанную в этом сообщении. Копирование отсутствующего файла вручную исправило его.

файл: Microsoft.Build.Tasks.CodeAnalysis.dll Целевой каталог: packages \ Microsoft.Net.Compilers.2.1.0 \ tools


0

Для меня я пытался открыть проект MVC5 в VS 2013, и я получал эту ошибку, открыл его в VS 2017, и все работало нормально.

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