Удалить восстановление пакета nuget из решения
Я добавил последнюю функцию восстановления пакета nuget к решению с помощью "Включить восстановление пакета NuGet":
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Однако он сломал мой сервер сборки, и у меня не было времени его исправить, поэтому я хотел его удалить. Там нет возможности для этого, насколько я знаю, поэтому я удалил следующую строку вручную из всех моих файлов *.csproj:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
Проблема в том, что каждый раз, когда мои *.csproj файлы выгружаются или открывают мое решение, строка автоматически добавляется снова, разбивая мою сборку, если я случайно ее проверю: (
Любые идеи, как я могу удалить его навсегда?
ОБНОВЛЕНИЕ: несмотря на ответ ниже, он все еще продолжает возвращаться при открытии решения, любой, у кого есть такая же проблема?
Ответы
Ответ 1
Я выглядел не очень хорошо, добавлено еще одно свойство в файлы проекта:
<RestorePackages>true</RestorePackages>
Просто удалите это, а также все эти строки вручную из всех файлов *.csproj:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
UPDATE:
Оказывается, это постоянный маленький искатель, если вы вручную редактируете файлы проекта, обязательно закройте это решение и сразу удалите все строки из проекта, иначе они просто добавляется снова после перезагрузки проекта...
UPDATE2:
Удалите также папку .nuget из корня решения
Update3:
В более поздней версии NuGet добавлен другой раздел, который нужно удалить:
<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>
Update4
Внутри NuGet.Targets
, расположенной в папке .nuget
, есть еще один раздел, который добавляется к новым проектам... переключает его на false.
<!-- We need to ensure packages are restored prior to assembly resolve -->
<BuildDependsOn Condition="$(RestorePackages) == 'false'">
RestorePackages;
$(BuildDependsOn);
</BuildDependsOn>
Ответ 2
Чтобы отключить восстановление пакета Nuget:
- Удалить папку .nuget
- Удалить определенные строки из всех файлов .csproj.
Линии для удаления:
<Import Project="$(SolutionDir)\.nuget\nuget.targets" />
<RestorePackages>true</RestorePackages>
Примечание. Обязательно выполняйте все изменения за один раз до перезагрузки или добавьте их обратно.
Это основано на следующей статье:
http://bartwullems.blogspot.no/2012/08/disable-nuget-package-restore.html
Кроме того, вы можете дважды проверить, что этот параметр отключен:
http://docs.nuget.org/docs/workflows/using-nuget-without-committing-packages
Ответ 3
Не здесь ли это значение?
Параметры... → Диспетчер пакетов Nuget → [снимите флажок] Разрешить Nuget для загрузки отсутствующих пакетов
![enter image description here]()
Я использую Visual Studio Professional + Resharper 8.2
Ответ 4
Решения, в настоящее время использующие восстановление пакета MSBuild-Integrated, могут быть перенесены в автоматическое восстановление пакетов. Насколько я понимаю, это должно помочь тем, кто сталкивается с проблемами сборки CI. (Пожалуйста, поправьте меня, если я ошибаюсь).
Обратитесь к документу на веб-сайте nuget: Миграция решений MSBuild-Integrated для автоматического восстановления пакетов в http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Здесь есть информация для преобразования с TFS и без него.
Дэвид Эббо также разместил некоторую информацию на http://blog.davidebbo.com/2014/01/the-right-way-to-restore-nuget-packages.html
Ответ 5
У нас на самом деле есть сообщение в блоге об этом, и в конце сообщения упоминалась ссылка powershell script, чтобы помочь с переносом.
http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
Ответ 6
В NuGet есть сообщение в блоге о переходе на автоматическое восстановление пакетов:
http://docs.nuget.org/docs/workflows/migrating-to-automatic-package-restore
В сообщении в блоге есть ссылка powershell script, которая позаботится о удалении необходимых строк автоматически (и рекурсивно):
https://github.com/owen2/AutomaticPackageRestoreMigrationScript/blob/master/migrateToAutomaticPackageRestore.ps1
Предлагая отключить параметр восстановления пакета NuGet напрямую, отмечен как "Не будет исправлено":
https://nuget.codeplex.com/workitem/1883
Ответ 7
Я следил за принятым решением без пользы с 2012 года. Это действительно работало,
- Полностью закрыть VS
- Обновите
<RestorePackages>true</RestorePackages>
до <RestorePackages>false</RestorePackages>
и удалите строку <Import Project="$(SolutionDir)\.nuget\nuget.targets" />
- Также переименован в
nuget.exe
в nuget.exe.NotExe
Ответ 8
Для тех, кто все еще нуждается в очистке проекта, используя восстановление старого пакета NuGet, инструмент IFix, доступный здесь, автоматизирует процесс.
Просто запустите установщик (IFix
будет добавлен в PATH
), а затем запустите следующее:
IFix nugetrestore --fix
Сначала вы можете запустить его в режиме проверки, чтобы увидеть, что он будет очищать:
IFix nugetrestore --check
Ответ 9
У меня была такая же проблема. Что я сделал:
1) зайдите в каждый проект .csproj файл в решении, откройте его в блокноте, затем удалите часть xml и сохраните.
2) Затем я удалил все файлы package.config во всем решении.
3) Затем мне пришлось удалить папки .nuget и package.
В этот момент у меня было абсолютно бесплатное решение NuGet.
4) Затем я вручную ссылался на любые необходимые DLL и удалял компиляцию, и решение запускалось как чемпион без необходимых пакетов NuGet.
Ответ 10
Перейдите в каталог решений, в котором у вас есть папка [$(SolutionDir)\.nuget\nuget.targets]
.nuget
и nuget.targets
под ним удалите папку,
и изменить удаление строк из csproj в последний раз.
Проблема снова не вернется к ошибке.
Ответ 11
Я случайно включил эту опцию восстановления пакета при открытии моего проекта в VS2012 RC и начал получать ошибки, которые выглядели примерно так:
"Ошибка 1 Не удалось найти" C:\FolderX\SomeProject.nuget\nuget.exe "
Чтобы исправить ошибку, я следил за приведенными выше инструкциями, открывал каждый файл проекта в блокноте и удалял эту строку RestorePackage.
Ответ 12
Мне удалось решить эту проблему, выполнив следующие шаги:
1) убедитесь, что вы берете резервную копию всех текущих изменений извлеченных файлов.
2) физически удалите папку решения с вашего C:\(путь, который отображается в TFS).
3) получите последнюю версию от TFS для вашего решения.
4) скопируйте (если есть) ваши изменения из резервной копии, сделанной в шаге 1.
надеюсь, что это поможет!
Ответ 13
Удалите файл package.config в своем решении.
Ответ 14
Я столкнулся с одной и той же проблемой и попытался удалить все теги .nuget и RestorePackage из файлов проекта, но один проект просто не перезагрузился, неважно, насколько тщательно я изучил его для тегов .nuget и RestorePackages. Наверное, там есть какие-то скрытые ссылки.
В итоге было проще просто скопировать файлы и создать новый проект и импортировать его в решение.
Ответ 15
Нугет сосет. Просто удалите nugets и удалите или прокомментируйте элементы пакета из packages.config в корневой каталог проектов, где это проблема. Вместо этого используйте прямые ссылки в папку lib.
<?xml version="1.0" encoding="utf-8"?>
<packages>
<!--<package id="EntityFramework" version="6.0.2" targetFramework="net45" />-->
</packages>