Этот пакет не является допустимым пакетом windows

Устранение ошибок при восстановлении пакетов Troubleshooting package restore errors

Эта статья посвящена распространенным ошибкам, возникающим при восстановлении пакетов, и мерам по их устранению. This article focuses on common errors when restoring packages and steps to resolve them.

Функция восстановления пакетов пытается установить все зависимости пакетов в правильном состоянии с учетом ссылок на пакет в файле проекта ( .csproj) или файле packages.config. Package Restore tries to install all package dependencies to the correct state matching the package references in your project file (.csproj) or your packages.config file. (В Visual Studio ссылки отображаются в обозревателе решений в узле Зависимости \ NuGet или Ссылки.) См. о восстановлении пакетов. (In Visual Studio, the references appear in Solution Explorer under the Dependencies \ NuGet or the References node.) To follow the required steps to restore packages, see Restore packages. Если пакет ссылается на файл проекта( .csproj) или если файл packages.config неправильный (не соответствует требуемому состоянию после восстановления пакета), необходимо установить или обновить пакеты. Не используйте вместо этого функцию восстановления пакетов. If the package references in your project file (.csproj) or your packages.config file are incorrect (they do not match your desired state following Package Restore), then you need to either install or update packages instead of using Package Restore.

Если приведенные здесь инструкции не работают, сообщите о проблеме на GitHub, чтобы мы могли тщательнее изучить ваш случай. If the instructions here do not work for you, please file an issue on GitHub so that we can examine your scenario more carefully. Не используйте элемент управления «Была ли эта страница полезной?», Do not use the «Is this page helpful?» который может отображаться на этой странице, так как это не позволяет нам связаться с вами для получения дополнительной информации. control that may appear on this page because it doesn’t give us the ability to contact you for more information.

Быстрое решение для пользователей Visual Studio Quick solution for Visual Studio users

Если вы используете Visual Studio, сначала включите восстановление пакета, как описано ниже. If you’re using Visual Studio, first enable package restore as follows. В противном случае перейдите к приведенным далее разделам. Otherwise continue to the sections that follow.

  1. Выберите команду Сервис > Диспетчер пакетов NuGet > Параметры диспетчера пакетов. Select the Tools > NuGet Package Manager > Package Manager Settings menu command.
  2. Задайте оба параметра в разделе Восстановление пакета. Set both options under Package Restore.
  3. Нажмите кнопку ОК. Select OK.
  4. Повторите сборку проекта. Build your project again.

Эти параметры также можно изменить в файле NuGet.config ; см раздел о согласии. These settings can also be changed in your NuGet.config file; see the consent section. Для достаточно ранних проектов, использующих встроенную в MSBuild функцию восстановление пакетов, возможно, потребуется перейти на автоматическое восстановление пакетов. If your project is an older project that uses the MSBuild-integrated package restore, you may need to migrate to automatic package restore.

Данный проект ссылается на пакеты NuGet, отсутствующие на этом компьютере This project references NuGet package(s) that are missing on this computer

Полное сообщение об ошибке. Complete error message:

Эта ошибка возникает при попытке выполнить сборку проекта, содержащего ссылки на один или несколько пакетов NuGet, которые сейчас не установлены на компьютере или в проекте. This error occurs when you attempt to build a project that contains references to one or more NuGet packages, but those packages are not presently installed on the computer or in the project.

  • При использовании формата управления PackageReference эта ошибка может быть следствием миграции packages.config в PackageReference, и это необходимо вручную удалить из файла проекта. When using the PackageReference management format, this error might be a leftover from a packages.config to PackageReference migration and needs to be manually removed from the project file.
  • Если используется файл packages.config эта ошибка означает, что пакет не установлен в папке packages в корне решения. When using packages.config, the error means that the package is not installed in the packages folder at the solution root.
Читайте также:  Справочник по службам windows

Обычно такая ситуация возникает при получении исходного кода проекта из системы управления версиями или другого скачанного файла. This situation commonly occurs when you obtain the project’s source code from source control or another download. Пакеты обычно исключаются из системы управления версиями или скачиваемых файлов, так как их можно восстановить из веб-каналов пакета, например nuget.org (см. раздел Пакеты и система управления версиями). Packages are typically omitted from source control or downloads because they can be restored from package feeds like nuget.org (see Packages and source control). Их включение приведет к раздуванию репозитория или созданию слишком больших ZIP-файлов. Including them would otherwise bloat the repository or create unnecessarily large .zip files.

Эта ошибка также может возникнуть, если файл проекта содержит абсолютные пути для расположений пакетов и вы перемещаете этот проект. The error can also happen if your project file contains absolute paths to package locations, and you move the project.

Для восстановления пакетов используйте один из следующих методов. Use one of the following methods to restore the packages:

После восстановления пакет должен присутствовать в папке global-packages. After a successful restore, the package should be present in the global-packages folder. В проектах, использующих формат PackageReference, в процессе восстановления повторно создается файл obj/project.assets.json , а в проектах, использующих файл packages.config , пакет должен появиться в папке packages . For projects using PackageReference, a restore should recreate the obj/project.assets.json file; for projects using packages.config , the package should appear in the project’s packages folder. Теперь сборка проекта должна пройти без ошибок. The project should now build successfully. В противном случае сообщите о проблеме на GitHub, чтобы мы могли связаться с вами. If not, file an issue on GitHub so we can follow up with you.

Файл ресурсов project.assets.json не найден Assets file project.assets.json not found

Полное сообщение об ошибке. Complete error message:

Если используется формат управления PackageReference, который проверяет, установлены ли на компьютере все необходимые пакеты, в файле project.assets.json определена схема зависимостей проекта. The project.assets.json file maintains a project’s dependency graph when using the PackageReference management format, which is used to make sure that all necessary packages are installed on the computer. Этот файл создается динамически во время восстановления пакета. Поэтому он обычно не добавляется в систему управления версиями. Because this file is generated dynamically through package restore, it’s typically not added to source control. В результате эта ошибка возникает при попытке выполнить сборку проекта с помощью такого средства, как msbuild , которое не восстанавливает пакеты автоматически. As a result, this error occurs when building a project with a tool such as msbuild that does not automatically restore packages.

В этом случае запустите msbuild -t:restore и затем msbuild или используйте dotnet build (при этом пакеты восстанавливаются автоматически). In this case, run msbuild -t:restore followed by msbuild , or use dotnet build (which restores packages automatically). Кроме того, вы можете использовать любой из методов восстановления пакетов, описанных в предыдущем разделе. You can also use any of the package restore methods in the previous section.

Необходимо восстановить один пакет NuGet или несколько, но это не удалось выполнить, так как не было получено согласие One or more NuGet packages need to be restored but couldn’t be because consent has not been granted

Полное сообщение об ошибке. Complete error message:

Эта ошибка означает, что восстановление пакета отключено в конфигурации NuGet. This error indicates that package restore is disabled in your NuGet configuration.

Вы можете изменить подходящие параметры в Visual Studio, как описано выше в разделе Быстрое решение для пользователей Visual Studio. You can change the applicable settings in Visual Studio as described earlier under Quick solution for Visual Studio users.

Читайте также:  Lumia 435 обновить до windows 10

Можно также изменить эти параметры напрямую в соответствующем файле nuget.config (обычно это %AppData%\NuGet\NuGet.Config в Windows и

/.nuget/NuGet/NuGet.Config в Mac и Linux). You can also edit these settings directly in the applicable nuget.config file (typically %AppData%\NuGet\NuGet.Config on Windows and

/.nuget/NuGet/NuGet.Config on Mac/Linux). Убедитесь, что для ключей enabled и automatic в разделе packageRestore задано значение True. Make sure the enabled and automatic keys under packageRestore are set to True:

При изменении параметров packageRestore прямо в nuget.config нужно перезапустить Visual Studio, чтобы диалоговое окно параметров отображало текущие значения. If you edit the packageRestore settings directly in nuget.config , restart Visual Studio so that the options dialog box shows the current values.

Другие потенциальные условия Other potential conditions

Могут возникнуть ошибки сборки, связанные с отсутствием файлов и указывающие, что для их скачивания следует использовать NuGet restore. You may encounter build errors due to missing files, with a message saying to use NuGet restore to download them. Но при выполнении команды restore может появиться сообщение «Все пакеты уже установлены, и элементы для восстановления отсутствуют». However, running a restore might say, «All packages are already installed and there is nothing to restore.» В этом случае удалите папку packages (при использовании packages.config ) или файл obj/project.assets.json (при использовании PackageReference) и запустите restore еще раз. In this case, delete the packages folder (when using packages.config ) or the obj/project.assets.json file (when using PackageReference) and run restore again. Если это не помогло решить проблему, очистите папку global-packages и кэш, выполнив в окне командной строки команду nuget locals all -clear или dotnet nuget locals all —clear . Дополнительные сведения см. в статье Управление папкой установки глобальных пакетов, кэшем и временными папками. If the error still persists, use nuget locals all -clear or dotnet nuget locals all —clear from the command line to clear the global-packages and cache folders as described on Managing the global packages and cache folders.

При получении проекта из системы управления версиями папки вашего проекта могут быть сделаны доступными только для чтения. When obtaining a project from source control, your project folders may be set to read-only. Измените разрешения для папок и попробуйте восстановить пакеты еще раз. Change the folder permissions and try restoring packages again.

Возможно, вы используете старую версию NuGet. You may be using an old version of NuGet. Ознакомьтесь с последними рекомендуемыми версиями на странице nuget.org/downloads. Check nuget.org/downloads for the latest recommended versions. Для Visual Studio 2015 рекомендуется версия 3.6.0. For Visual Studio 2015, we recommend 3.6.0.

При возникновении других проблем сообщите о них на GitHub, чтобы мы могли получить у вас дополнительные сведения. If you encounter other problems, file an issue on GitHub so we can get more details from you.

Этот пакет не является допустимым пакетом windows

Вопрос

Ситуация следующая: на сервер win2012r2 перестали устанавливаться некоторые обновления. Т.е. какие-то обновления успешно устанавливаются, а какие-то нет. В случае ошибки установки обновления ошибка всегда одна и та же: 800F0831

В лог %windir%\log\CBS\CBS.log при каждой неудачной попытке установки обновления производится следующая запись: 2015-10-09 11:11:40, Error CBS Failed to resolve package ‘Package_30_for_KB3023562

6.3.1.2′ [HRESULT = 0x800f0831 — CBS_E_STORE_CORRUPTION]

Т.е., IIUC, установщик обновлений просматривает хранилище компонентов, утыкается в какой-то сбойный компонент и прекращает работу.

Проблемное обновление KB3023562 в системе отсутствует (оно было заменено более поздним замещающим KB3067505), попытки переустановить KB3023562 закончились неудачей (система не нуждается в этом обновлении).

Пытался лечить при помощи DISM.exe /Online /Cleanup-image

C:\Users\Администратор>DISM.exe /Online /Cleanup-image /CheckHealth

Cистема DISM
Версия: 6.3.9600.17031

Версия образа: 6.3.9600.17031

Хранилище компонентов подлежит восстановлению.
Операция успешно завершена.

Затем выполнил проверку

C:\Users\Администратор>DISM.exe /Online /Cleanup-image /ScanHealth

Cистема DISM
Версия: 6.3.9600.17031

Версия образа: 6.3.9600.17031

[==========================100.0%==========================]
Повреждение хранилища компонентов не обнаружено.
Операция успешно завершена.

Странно, ну ладно, давайте попробуем выполнить ремонт хранилища

C:\Users\Администратор>DISM.exe /Online /Cleanup-image /RestoreHealth

Cистема DISM
Версия: 6.3.9600.17031

Версия образа: 6.3.9600.17031

[==========================100.0%==========================]
Восстановление выполнено успешно. Повреждение хранилище компонентов было устране
но.
Операция успешно завершена.

Попытался установить проблемные обновления — результат нулевой: никаких изменений (в логах та же ошибка)

Попытался удалить проблемный компонент, как это описано здесь:

C:\Users\Администратор>dism /online /remove-package /packagename:Package_30_for_
KB3023562

Cистема DISM
Версия: 6.3.9600.17031

Версия образа: 6.3.9600.17031

Ошибка при попытке открыть — «Package_30_for_KB3023562

6
.3.1.2″ Ошибка: 0x800f0805
Указанный пакет не является допустимым пакетом Windows.

Указанный пакет не является допустимым пакетом Windows.

Попытался очистить хранилище от замещенных компонентов (ведь проблемное обновление было замещено другим)

C:\Users\Администратор>DISM.exe /Online /Cleanup-image /StartComponentCleanup

Cистема DISM
Версия: 6.3.9600.17031

Версия образа: 6.3.9600.17031

Ошибка: 0x800f0831

Сбой DISM. Операция не выполнена.
Дополнительные сведения см. в файле журнала.

Файл журнала DISM находится по адресу C:\Windows\Logs\DISM\dism.log

Снова та же ошибка.

Выполнил поиск в реестре по подстроке «KB3023562», искомая подстрока встречается, но только в следующих сочетаниях:

а вот проблемного пакета Package_30_for_KB3023562... в реестре не упоминается.

Мысли кончились. Как вычистить проблемный компонент?

my blog: http://shserg.ru/

Ответы

Удалил проблемный пакет так, как это описано здесь:

хотя, вероятно, можно было выполнить удаление проще (при помощи

что мне в голову не приходило (я пытался удалить именно Package_30_for_KB3023562. о котором была запись в логах)

После этого выполнил на всякий случай

В результате в который раз уже получил традиционное сообщение об отсутствии ошибок.

Затем выполнил установку KB2967917. На этот раз это исправление встало без ошибок.

my blog: http://shserg.ru/

Все ответы

Покажите результат выполнения следующей команды в командной строке (cmd.exe):

P.S. после выполнения команды, лог создаться на рабочем столе.

Best Regards, Andrei .
Microsoft Certified Professional

в файле CBS.log нет ни одной строки, которая бы содержала «[SR]», результат выполнения команды

my blog: http://shserg.ru/

my blog: http://shserg.ru/

А могли бы выполнить следующую команду:
В случае ошибок, разместите файл %windir%\Logs\CBS\CBS.log на файловом хранилище.

Уточните пожалуйста, логируются ли в системных событиях(eventlogs) ошибки?

Best Regards, Andrei .
Microsoft Certified Professional

ЗЫ я чуть раньше выполнял эту команду (правда с ключом /Verifyonly), ошибок не было обнаружено

my blog: http://shserg.ru/

Best Regards, Andrei .
Microsoft Certified Professional

  • Изменено SQx Moderator 11 октября 2015 г. 14:43

my blog: http://shserg.ru/

В случае, если сервер имеет роль веб-сервера, то Вам следует попробовать уставить обновление в режиме чистой загрузке.

Best Regards, Andrei .
Microsoft Certified Professional

Кроме того, не понятно из чего это следует?

Единственная ошибка, которую я наблюдаю — это ошибка хранилища компонентов (см первый пост).

my blog: http://shserg.ru/

вот еще цитата из лога:

my blog: http://shserg.ru/

Кроме того, не понятно из чего это следует?

Похожую ситуацию наблюдал уже, когда стороннее ПО мешало установление обновлений на сервере с ролью Веб-сервера.

В логе наблюдается следующее:
Уточните существование данной библиотеки, также уточните какое антивирусное ПО используется на сервере?

Best Regards, Andrei .
Microsoft Certified Professional

SrClient . dll на сервере не нашел .

Установлен kav win serv ent ed sp1 (в настоящее время отключен).

> Похожую ситуацию наблюдал уже, когда стороннее ПО мешало установление обновлений на сервере с ролью Веб-сервера.

Не понятно — чем похожую?

Ошибка говорит о разрушении хранилища компонентов

my blog: http://shserg.ru/

Попробуйте воспользоваться сторонней утилитой SFCFix.exe

После выполнения, должен образоваться лог SFCFix.txt приложите его в следующем сообщение.

Также уточните присутствуют ли указанные файлы:

Best Regards, Andrei .
Microsoft Certified Professional

Надо корректно почистить папку C:\Windows\SoftwareDistribution , введя последовательно в командную строку, запущенную от имени админ, следующие команды :
1. for %A in (wuauserv BITS CryptSvc msiserver TrustedInstaller) do net stop %

A
2. rd /s /q %SYSTEMROOT%\SoftwareDistribution
3. for %A in (wuauserv BITS CryptSvc msiserver TrustedInstaller) do net start %

Очистка системы от неактуальных обновлений
выполните в командной строке: по очереди
1. reg add «HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\VolumeCaches\Update Cleanup» /v StateFlags0001 /t reg_dword /d 2 /f
2. cleanmgr /sagerun:1
3. Применяем Фиксика из этой темы https://support.microsoft.com/ru-ru/kb/958046
После этого рекомендуется перезагрузить компьютер. И. » да прибудет с вами сила «

Папку чистил ранее (дело не в ней). Что касается Disk Cleanup, то пока решил не возиться с этим делом, т.к. результат его применения сомнителен:

очистку от ненужных обновлений можно выполнять уже имеющимся в системе DISM, однако попытка такой очистки приводит к все той же ошибке (см. выше). Для того же, чтобы запустить Disk Cleanup ( cleanmgr ) на серверной ОС, придется сначала установить на нее Desktop-Experience, что не есть гуд.

Оцените статью