Ошибка сборки, этот проект ссылается на NuGet

когда я пытаюсь построить решение, я получаю следующее сообщение об ошибке:

Состояние Подавления Строки Файла Проекта Описания Кода Серьезности Ошибка этот проект ссылается на пакеты NuGet, которые отсутствуют на этот компьютер. Используйте NuGet Package Restore для их загрузки. For more сведения см. В разделе http://go.microsoft.com/fwlink/?LinkID=322105. В отсутствует файл .. пакетыMicrosoft.Сеть.Компиляторы.1.1.1buildMicrosoft.Сеть.Компиляторы.реквизит. MusicKarma C:UsersBryanDocumentsVisual Студия 2015ПроектыMusicKarmaMusicKarma.csproj файл 268

когда я смотрю в папке "пакеты", я могу найти файл с именем Microsoft.Сеть.Компиляторы.реквизит

Я попытался использовать NuGet Restore, но он продолжает говорить, что у меня есть все пакеты. Кто-нибудь может мне помочь?

Это происходит, когда я беру этот проект из TFS в один из мой компьютер.

5 ответов


сначала я бы проверил, есть ли у вашего проекта MusicKarma Microsoft.Сеть.Компиляторы в пакетах.конфигурационный файл. Если нет, то вы можете удалить все, что связано с этим пакетом NuGet из вашей MusicKarma.csproj файл.

Если вы используете Microsoft.Сеть.Компиляторы пакета NuGet тогда я предполагаю, что путь неверен. Глядя на имя каталога в сообщении об ошибке, я бы предположил, что файл решения MusicKarma (.sln) находится в том же каталоге, что и MusicKarma.csproj файл. Если так тогда каталог пакетов, вероятно, ошибочен, так как по умолчанию каталог пакетов будет находиться внутри каталога решения. Поэтому я предполагаю, что ваш каталог пакетов:

C:\Users\Bryan\Documents\Visual Studio 2015\Projects\MusicKarma\packages

пока MusicKarma.файл csproj ищет файл реквизита в:

C:\Users\Bryan\Documents\Visual Studio 2015\Projects\packages\Microsoft.Net.Compilers.1.1.1\build

Итак, если это так, то вы можете исправить проблему, отредактировав путь в своей MusicKarma.файл csproj или переустановка пакета NuGet.


эта проблема появилась для меня, когда я создавал папки в файловой системе (не в моем решении) и перемещал некоторые проекты.

оказывается, что пути пакетов относительно файлов csproj. Поэтому мне пришлось изменить "HintPath" моих ссылок:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
    <HintPath>..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
    <Private>True</Private>
</Reference>

в:

<Reference Include="EntityFramework, Version=6.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL">
    <HintPath>..\..\packages\EntityFramework.6.1.3\lib\net45\EntityFramework.dll</HintPath>
    <Private>True</Private>
</Reference>

обратите внимание на двойное "..\" в HintPath'.

мне также пришлось изменить условия ошибки, например, мне пришлось изменить:

<Error Condition="!Exists('..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />

в:

<Error Condition="!Exists('..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\packages\Microsoft.Net.Compilers.1.1.1\build\Microsoft.Net.Compilers.props'))" />

опять же, обратите внимание на двойное "..\".


У меня также была эта ошибка Я взял эту часть кода .файл csproj:

 <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
      <PropertyGroup>
        <ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them.  For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
      </PropertyGroup>
      <Error Condition="!Exists('$(SolutionDir)\.nuget\NuGet.targets')" Text="$([System.String]::Format('$(ErrorText)', '$(SolutionDir)\.nuget\NuGet.targets'))" />
    </Target>

Это немного старый пост, но я недавно столкнулся с этой проблемой. Все, что я сделал, это удалил все пакеты nuget из папки packages и восстановил его. Мне удалось успешно построить решение. Надеюсь, поможет кому-то.


зачем вам нужны манипуляции с пакетами.config или .файлы csproj?
Ошибка явно говорит: используйте NuGet Package Restore для их загрузки.
Используйте его соответственно этой инструкции: https://docs.microsoft.com/en-us/nuget/consume-packages/package-restore-troubleshooting:

быстрое решение для пользователей Visual Studio
1.Выберите команду меню Сервис > Диспетчер пакетов NuGet > параметры диспетчера пакетов.
2.Установить оба параметры в разделе Восстановление пакета.
3.Выберите OK.
4.Создайте свой проект снова.