Ссылки на отсутствующие пакеты NuGet. Восстановление или переустановка пакетов пакетов не работает

#c# #.net #visual-studio #nuget

#c# #.net #visual-studio #nuget

Вопрос:

В решении Visual Studio есть несколько проектов, которые должны иметь MSTest.Среди прочего, пакет NuGet TestAdapter. При загрузке из системы управления версиями каждый проект в решении выдает ошибку: «Этот проект ссылается на пакеты NuGet, которые отсутствуют на этом компьютере. Для их загрузки используйте NuGet Package Restore. »

Я пытался использовать диспетчер пакетов NuGet для удаления и переустановки поврежденного пакета, но безрезультатно. Я также пробовал «восстановление пакета».

Каждый проект в решении содержит packages.config файл со следующим содержимым:

 <?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="MSTest.TestAdapter" version="2.1.2" targetFramework="net461" />
  <package id="NLog" version="4.7.7" targetFramework="net461" />
</packages>
 

Использование Visual Studio 2017.

Как это исправить?

Комментарии:

1. Должно быть, при восстановлении пакета в окне вывода появляется какая-то ошибка. Можете ли вы опубликовать эту ошибку здесь?

Ответ №1:

Введите csproj файл, а затем удалите эти две строки:

 <Error Condition="!Exists('xxxpackagesMSTest.TestAdapter.2.1.2buildnet45MSTest.TestAdapter.props')" Text="$([System.String]::Format('$(ErrorText)', 'xxpackagesMSTest.TestAdapter.2.1.2buildnet45MSTest.TestAdapter.props'))" />
<Error Condition="!Exists('xxpackagesMSTest.TestAdapter.2.1.2buildnet45MSTest.TestAdapter.targets')" Text="$([System.String]::Format('$(ErrorText)', 'xxpackagesMSTest.TestAdapter.2.1.2buildnet45MSTest.TestAdapter.targets'))" />
 

Две строки по-прежнему основаны на вашем управлении версиями, а не на вашей новой среде VS. Вы должны удалить старый неправильный путь, а затем установить новый путь на основе вашей текущей среды VS.

После этого введите Сервис -> Диспетчер пакетов Nuget -> Консоль диспетчера пакетов, а затем введите это, чтобы переустановить все пакеты nuget:

 update-package -reinstall
 

Комментарии:

1. Существует файл .csproj только для одного из нескольких проектов в решении. Я отредактировал этот конкретный файл, и ошибка, связанная с этим проектом, была устранена. Как поступить с оставшимися проектами в решении?

2. Когда вы открываете решение в среде разработки VS IDE, щелкните правой кнопкой мыши на каждом проекте-> Unload Project ->, а затем щелкните правой кнопкой мыши на файле-> edit xxx.csproj , чтобы удалить две строки xml. Вы должны делать это для каждого проекта.

3. Это изменение csproj — это шаг, который вы должны выполнить для каждого проекта. И когда вы закончите, вы можете запустить update-package -reinstall один раз, и это работает для всех проектов в рамках решения.

4. @Al2110, есть какие-либо обновления по этой проблеме? Пожалуйста, сообщите нам о любых отзывах по этой проблеме. Если это поможет, пожалуйста, не забудьте принять его. И если нет, пожалуйста, сообщите нам о любых других ваших проблемах. И мы готовы помочь вам в дальнейшем.

5. Я попробую это и вскоре предоставлю обновление.