Я искал эту проблему, но ни одно из решений не помогло. У меня установлена Visual Studio Professional 2015, и я использую TFS. Моя версия NuGet - 3.1.6. Эта проблема возникает только в моем проекте C # Web API / MVC.
Я получаю следующую ошибку:
Этот проект ссылается на пакеты NuGet, которые отсутствуют на этом компьютере. Используйте NuGet Package Restore, чтобы загрузить их. Для получения дополнительной информации см. Http://go.microsoft.com/fwlink/?LinkID=322105 . Отсутствующий файл: .. \ packages \ Microsoft.Net.Compilers.1.0.0 \ build \ Microsoft.Net.Compilers.props
- У меня нет папки .nuget в моих решениях.
- У меня есть папка с пакетами в решении, и когда я ее удаляю, кажется, что NuGet перестраивает зависимости, но в проекте все еще есть вышеуказанная ошибка.
- Я попытался удалить проект из TFS, но это не помогло.
- Наряду с вышеуказанной ошибкой все ссылки в проекте имеют желтые предупреждающие знаки и говорят, что они отсутствуют.
- Когда я проверял диспетчер пакетов NuGet для проекта, все, что «отсутствует», имеет зеленую галочку рядом с ним, включая Microsoft.Net.Compilers.
- Я попытался добавить новый проект Web API / MVC, и он столкнулся с аналогичной проблемой, когда большинство ссылок, таких как Овин, «пропускали» с желтым предупреждающим знаком.
visual-studio
nuget
visual-studio-2015
Кес Тион
источник
источник
Ответы:
У меня была та же ошибка (отсутствует точно такой же пакет) сегодня. Я также создал проект MVC + Web API.
Это произошло потому, что я переместил файлы приложения (включая .csproj) в другое место. Я вручную обновил файл .sln, но теперь все зависимости пакетов (Visual Studio 2015) хранятся в файле .csproj.
Редактирование файла .csproj и исправление относительного пути к папке решения (которая содержит папку пакетов) решила проблему для меня.
источник
Я решил мою проблему, удалив этот код из
.csproj
файла:источник
ВНИМАНИЕ - это обновление пакетов для всего решения, а не только для проекта.
Если у вас есть еще один отсутствующий пакет nuget, который выдает ошибку при создании решения, используйте следующую команду, используя консоль команд Nuget, из меню Инструменты> Диспетчер пакетов Nuget> Консоль диспетчера пакетов. Это переустановит все ваши текущие пакеты.
Обновить:
Вы можете передать конкретное имя проекта в качестве параметра.
источник
У меня было именно это разочаровывающее сообщение. В конечном итоге у меня сработало удаление всех файлов и папок внутри / packages и разрешение VS повторно загружать все при следующей сборке.
источник
Restore Nuget Packages
.Тибериу это правильно. Я должен был отредактировать мой файл .csproj, поскольку файлы были перемещены, и вызвал эту проблему
Я изменил вверху файла и внизу
источник
Так я решил эту ошибку: чтобы открыть файл .csproj для обновления в Visual Studio 2015+, обозреватель решений:
Щелкните правой кнопкой мыши имя проекта -> Выгрузить проект
Щелкните правой кнопкой мыши имя проекта -> Изменить .csproj
Удалите следующие строки:
Щелкните правой кнопкой мыши имя проекта -> Обновить проект
Наконец, постройте свое решение.
источник
Я решил эту проблему, удалив следующий код из файла .csproj
источник
Комбинация из 2 ответов сработала для меня. Сначала я изменил файл .csproj, чтобы удалить ссылку на версию 1.0.0
а потом сделал
от и это сработало.
источник
Для меня проблема заключалась в том, что когда я копировал решение в новую папку и открывал ее, в ней отсутствовала папка Nuget, как показано ниже. Я скопировал эту папку и все заработало. Примечание. Эта та же папка была в нашем контроле исходного кода, но не в этом проекте решений, это была одна папка.
источник
Просто включите восстановление пакета NuGet. Щелкните правой кнопкой мыши свое решение> выберите «Включить восстановление пакета NuGet».
Это создаст папку .nuget с файлом NuGet.Config и исправит мою проблему.
источник
Я использую VS2012 и сталкиваюсь с той же ошибкой. Я удалил следующий тег Target из файла .csproj, и он начал компилироваться без каких-либо ошибок.
источник
Чтобы расширить некоторые ответы здесь, да, вы можете удалить следующий блок из файла .csproj:
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
и это решает проблему, однако в моем случае я заметил, что у меня есть дополнительные ссылки на .NET.Compilers и .CodeDom.Providers с различными версиями:
Когда мой package.config ссылается только на следующее:
Удаление элементов 1.0.0 из файла .csproj устранило проблему.
источник
Для любого, кто сталкивается здесь с проблемой, с которой я столкнулся (некоторые, но не все пакеты, восстанавливаемые на сервере сборки), последний кусок головоломки для меня заключался в добавлении NuGet.config в корень моего решения, в том числе в .SLN. файл, как объяснил Дэвид Эббо, здесь: http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html .
Из сообщения в блоге Ebbo, содержимое файла для меня просто
ОБНОВИТЬ:
URL-адрес API NuGet был изменен для версии 3 (по состоянию на сентябрь 2016 года). С https://www.nuget.org/
источник
Сообщение об ошибке полностью правильно. Я перепробовал все трюки, и ни один не сработал. Проект (простой тест MVC Web App) переместился из Windows 8.1 VS 2015 Community в мой новый тестовый ящик в Windows 10. Все последние обновления для VS 2015 применены. Я даже не мог установить более новую версию пакета компиляторов.
Наконец, я просто скопировал Microsoft.Net.Compilers.1.0.0 из старого проекта в новый, и он заработал. Затем я мог бы начать обновлять другие пакеты до более новой версии. Похоже, ошибка процесса обновления проекта nuget для меня.
ПРИМЕЧАНИЕ . Первоначальный проект был создан в VS 2015 и не имеет устаревших методологий nuget.
источник
Решение, которое работает в моем случае - Visual Studio 2015 Предприятие, проект .NET 4.6.1
источник
Для меня пакеты были там по правильному пути, но папок сборки внутри папки пакета не было. Я просто удалил все пакеты, которые, по его словам, отсутствовали, и пересобрал решение, и он успешно создал папки сборки и файлы .props. Таким образом, сообщения об ошибках были правильными, сообщая мне, что что-то было не так.
источник
У меня была эта проблема как неудачная сборка в Azure при развертывании из Git.
Оказывается, мой .gitignore исключал
build
папку из..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.0\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props
.Как только
build
папка была (принудительно) передана в Git, проблема была решена.источник
Я решил ту же проблему с помощью следующих шагов
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="2.0.1" targetFramework="net46" />
из файла package.config.Отредактируйте файл проекта .csproj и удалите приведенные ниже настройки.
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <PropertyGroup> <ErrorText>This project references NuGet package(s) that are missing on this computer. Use 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('..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.2.0.1\build\net46\Microsoft.CodeDom.Providers.DotNetCompilerPlatform.props'))" /> </Target>
Update-Package –reinstall
Пункты 2 и 3 были даны другими пользователями, и я ценю этих пользователей. Пункт № 1, удаление
Microsoft.CodeDom.Providers.DotNetCompilerPlatform
из файла package.config является более важным. Кроме того, после выполнения команды, упомянутой в пункте № 3, проблема решена. Все ненужные пакеты удалены, а требуемая ссылка на пакет обновлена.Надеюсь, это кому-нибудь поможет.
источник
Я не смог найти никаких решений для этого, поэтому я добавил копию nuget.exe и скрипт powershell в корневой каталог решения с именем prebuild.ps1 со следующим содержимым.
Я назвал этот скрипт powershell в моей сборке в пути к сценарию перед сборкой
источник
Мой работал, когда я скопировал папку пакетов вместе с файлом решения и папкой проекта. Я просто не скопировал папку с пакетами с предыдущего места.
источник
Вы также можете использовать предложенное сообщение об ошибке в качестве подсказки. Вот как, найдите Управление пакетами для решения и щелкните по поиску отсутствующего пакета nuget.
это оно
источник
Прокомментируйте опцию компилятора в
WebConfig
:Перестройте все, если все в порядке, не нужно продолжать, иначе щелкните правой кнопкой мыши проект, выберите «unload project» и снова щелкните правой кнопкой мыши проект и отредактируйте файл .csproj
Проверьте путь Codedom, у него не было net45 в предыдущих путях, добавьте это вручную, сохраните, загрузите, восстановите. Он должен работать.
источник
Как многие предложили, удаление
<Target>
тега может сделать его компилируемым. Тем не менее, остерегайтесь того факта, что он имеет побочный эффект, когда вы делаете это для тестовых проектов.Я получил ошибку, связанную с
MSTest.TestAdapter
пакетом nuget во время компиляции. Решил эту проблему, удалив<Target>
тег. Несмотря на то, что сборка была успешной, методы тестирования стали недоступны для обнаружения. Тестовый проводник не будет перечислять методы тестирования в этом проекте, и Run Test или Debug Test также не будут работать.Я столкнулся с этим во время использования,
Visual Studio 2017
и.Net framework 4.7
это может очень хорошо произойти в других версияхисточник
$(SolutionDir)
работу, но обновить не удалось. Я спросил это здесь . У вас есть какое-нибудь решение?Для меня проблема заключалась в том, что NuGet не мог автоматически получать / обновлять пакеты, потому что полный путь к файлу был бы слишком большим. Исправлено перемещение моего решения в папку в «Документах» вместо глубоко вложенной папки .
Затем можно щелкнуть правой кнопкой мыши решение и выбрать «Восстановить пакеты NuGet» (что, вероятно, не нужно, если вы просто создадите его и сделаете это за вас), а затем выберите «Управление пакетами NuGet для решения», чтобы получить все пакеты. обновлено до последней версии.
Это было для решения образца приложения ASP MVC, загруженного с веб-сайта Microsoft.
источник
Для разработчиков DevOps / build, вы, вероятно, можете исправить это, работая
nuget restore
с уязвимым SLN или проектом, если у вас нет SLN. Я должен сделать это для наших сборок CI / CD для всех наших проектов UWP.VS2015
call "%VS140COMNTOOLS%VsDevCmd.bat"
или
VS2017
call "%ProgramFiles(x86)%\Microsoft Visual Studio\2017\Enterprise\Common7\Tools\VsDevCmd.bat"
call nuget restore MyStuff.SLN
илиcall nuget restore MyStuff.csproj
если нет SLN.источник
Не уверен, поможет ли это кому-нибудь, но у меня возникла эта проблема, когда я удалил исходный код с моего локального компьютера, даже не сохранив файл решения в TFS. (Во время первоначальной разработки я щелкал правой кнопкой мыши и проверял проект в обозревателе решений, но забыл когда-либо проверять само решение.) Когда мне нужно было снова поработать над этим, все, что у меня было в TFS, это файл .csproj, Нет .SLN файл. Поэтому в VS я сделал Файл -> Контроль исходного кода -> Дополнительно - Открыть с сервера и открыл файл .csproj. Оттуда я сделал Save All, и он спросил меня, где я хочу сохранить файл .sln. Я сохранял этот файл .sln в каталоге проекта с другими папками (App_Data, App_Start и т. Д.), А не с каталогом верхнего уровня. Я наконец понял, что мне нужно сохранить файл .sln в каталоге из папки проекта, чтобы он На том же уровне, что и папка проекта. Все мои пути решены, и я смог построить его снова.
источник
Для меня мой файл gitignore игнорировал мою папку пакетов. Следующая строка gitignore вызывала проблему -
Удалил и восстановил папку с моими пакетами. Надеюсь, это поможет кому-то еще.
источник
Я получил исправление этой ошибки, на самом деле у меня была другая версия MSTest.TestAdapter (1.3.2) в моей папке пакетов и в .csproj ссылки на файл указывали на MSTest.TestAdapter (1.1.0). Я заменил все MSTest.TestAdapter (1.1.0) на MSTest.TestAdapter (1.3.2), и это решило мою проблему.
источник
Я понимаю, что этот вопрос старый, однако сегодня я столкнулся с такой же ситуацией и хотел добавить свои 2 цента для тех, кто недавно нашел эту проблему. Проект ASP MVC, который я вручную переместил в подпапку в своем решении, а затем удалил и добавил в решение, используя Visual Studio 2017, выдавал указанную ошибку. Перемещение папок «lib» и «packages» в корень той же подпапки, что и проект MVC, решило мою проблему.
источник
У меня возникла та же проблема, оказалось, что один из проектов, на которые я ссылался, находился за пределами каталога решения (и поэтому не использовал одну и ту же папку «/ packages»). Решение, которое работало для меня, состояло в том, чтобы открыть решение эталонного проекта и построить его там. Как только этот проект был построен, ошибки исчезли.
источник