Manifest extraction failed не удается найти тип среды выполнения windows

Обновлено: 07.07.2024

Я получаю следующую ошибку .

Я пробовал следующее:

Это ошибка? Есть ли обходной путь? Любая помощь приветствуется.

У меня была та же проблема, и я не нашел предлагаемых решений. Мое решение этой проблемы: проверьте App.config и packages.config, чтобы узнать, совпадают ли версии.

Первоначально мой app.config содержал:

Но файл packages.config содержал:

Я изменил запись app.config, чтобы она соответствовала packages.config для новой версии:

После изменения проблема была решена.

Я вытащил «4.3.0» из NuGet, но по какой-то причине VS настаивает на том, чтобы я ссылался на «4.1.2.0», у меня сработала аналогичная работа, только с другим номером версии . У меня была такая же проблема, как у @DavidRogers в проекте MSTest. Объединение различий между app.config и packages.config решило проблему. да, большое спасибо ! Это было решение для моего MSTest, который не нашел тестов [MSTest][Discovery] Failed to discover tests from assembly Reason:Could not load file or assembly 'System.Reflection, Version=4.1.1.0 etc Решение сработало для меня. Проблема началась после установки HtmlAgilityPack NUGET. И не запускался из-за неправильной информации о версии в пакетах. +1

Приведенное ниже больше не нужно, оно было исправлено около VS 15.3:

Был известная ошибка VS2017 , особенно в NuGet 4.0.

NuGet 4.x приносит с собой «ссылку на пакет» - больше никаких пакетов.config, - но старый конвейер 4.x не был полностью обновлен на момент запуска VS2017. Приведенный выше фрагмент, кажется, «разбудит» систему сборки для правильного включения ссылок на пакеты из зависимостей.

Какое обновление Visual Studio 17? Можете указать версию? У меня все еще проблема в 15.5.5 VS2017. Похоже, есть и другие причины.

Я недавно столкнулся с этой проблемой, и я пробовал много вещей, упомянутых в этой и других ветках. Я добавил ссылку на "System.Runtime" пакет для диспетчера пакетов nuget, исправил повторные привязки app.config и убедился, что app.config и package.config для сборки используется та же версия. Однако проблема не исчезла.

Наконец-то снял <dependentAssembly> бирку для сборки и проблема исчезла. Итак, попробуйте удалить следующее в вашем app.config .

Основываясь на вашем ответе, я проверил свои пакеты nuget и обнаружил, что между моими проектами требуется «Google.protobuf» (консолидация), Было бы полезно лучше объяснить, почему это сработает. Проблема с этим методом заключается в том, что всякий раз, когда вы обновляете какой-либо пакет nuget или добавляете новый пакет nuget, он будет добавлен снова.

Я решил эту ошибку, сославшись на NetStandard.Library и следующий файл app.config в NUnit-Project.

редактировать

Редактировать 2

Автоматическое создание переадресации привязки

В новых версиях Visual Studio (я думаю, 2017 15.8) возможно, что Studio создаст файл app.config. Просто установите флажок Автоматически создавать перенаправления привязки в Project-Properties - Application .

Редактировать 3

Я исправил это, удалив app.config с помощью

app.config был автоматически добавлен (но не нужен) во время рефакторинга

Это сработало для меня! Обязательно попробуйте это, если все остальное у вас не работает

<dependentAssembly> <assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/> <bindingRedirect oldVersion="0.0.0.0-4.1.2.0" newVersion="4.1.2.0"/> </dependentAssembly>

Я исправил свою ошибку, установив NetStandard.Library в свой проект модульного тестирования.

Мы обнаружили, что AutoGenerateBindingRedirects может быть причиной этой проблемы.

Замечено: один и тот же проект нацелен net45 и netstandard1.5 был успешно построен на одной машине и не был построен на другой. На машинах были установлены разные версии фреймворка (4.6.1 - успешно и 4.7.1 - неудачно). После обновления фреймворка на первой машине до версии 4.7.1 сборка также не удалась.

Загляните в это прямо сейчас в проекте модульного теста после добавления MsTest V2 через Nuget. Переименование app.config (столь эффективное его удаление) помогло мне.

но один пакет также добавил ту же сборку в зависимости от другой версии:

удаление тега «добавить сборку» из моего файла web.config решило проблему.

В app.config или web.config добавьте

Похоже, проблема возникает из-за конфликта версий между packages.config и app.config. В app.config у вас есть перенаправления привязки сборки, автоматически генерируемые функцией AutoGenerateBindingRedirects. Если этот параметр включен каждый раз, когда вы загружаете пакет nuget, он будет, помимо создания новой записи в packages.config, добавлять эту информацию о перенаправлении привязки в app.config. Какова цель этого, объясняется здесь: Перенаправление привязки сборки: как и почему?

Там вы можете прочитать, что написал пользователь @Evk:

Зачем вообще нужны привязки перенаправления? Предположим, у вас есть приложение A, которое ссылается на библиотеку B, а также на библиотеку C версии 1.1.2.5. Библиотека B, в свою очередь, также ссылается на библиотеку C, но версии 1.1.1.0. Теперь у нас конфликт, потому что вы не можете загружать разные версии одной и той же сборки во время выполнения. Чтобы разрешить этот конфликт, вы можете использовать перенаправление привязки, обычно к новой версии.

Итак, БЫСТРОЕ ИСПРАВЛЕНИЕ: удалите все записи в app.config.

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

Я использую Docker в Windows, и когда я пытался вытащить образ PHP с помощью этой команды

  • 6 Чтобы помочь другим, я столкнулся с этой ошибкой при создании образа для Linux в качестве базовой ОС . Причина этой ошибки заключалась в том, что она была установлена ​​для контейнеров Windows, поэтому я переключился на контейнеры Linux, и он начал работать .
  • Также для потомков: я получил это здание в виде контейнера Windows. Несмотря на то, что я перешел на Windows, похоже, он снова переключился на Linux. Возврат к Windows устранил проблему.

У меня была такая же проблема в Windows 10. Я обошел ее, запустив демон Docker в экспериментальном режиме:

У этой ошибки может быть много причин. Но наиболее очевидной причиной этой ошибки является использование контейнера Windows в режиме контейнера Linux или наоборот.


Вы находитесь в режиме контейнера Windows. Так что, если вы не уверены, что изображение, которое хотите вытянуть построен для архитектуры Windows, вам необходимо перейти на контейнеры Linux.

  • 1 Альтернатива (которая, как я обнаружил, тоже работает) находится в ответе Чака
  • 3 Это решило проблему. Я использовал платформу Windows 10.
  • как только он не переключается? это обходной путь
  • 1 Если вы переключитесь на контейнеры Linux, сможете ли вы размещать приложения Windows в Docker? Например, с использованием IIS и MySQL в одном экземпляре Docker.
  • @webworm, поскольку существует также MySQL для Windows, зачем использовать версию для Linux, если вы хотите смешать ее с IIS, а не просто использовать версию для Windows?

Другой возможный способ сделать это:

На панели задач щелкните правой кнопкой мыши значок докера, затем щелкните Switch to Linux containers .

(Docker для Windows, Community Edition, версия 18.03.1)

В моем случае это было то, что версия ОС Windows, на которой я был, не поддерживала тег, который я пытался вытащить. Использование более старого тега позволило мне заставить это работать.

Версия: Windows 10

Шаг 1. Щелкните правой кнопкой мыши экземпляр Docker и перейдите в настройки.


Шаг 2: с базового уровня на расширенный и установка "экспериментального": true


Шаг 3. Перезапустите Docker.


Шаг 4: установка dockerfile прошла успешно (например, docker build -t williehao / cheers2019.)


Сначала вам нужно использовать платформу Linux, затем вы можете запускать в Windows:

  • Да, --platform флаг тоже работает. Хотя он может загружать файлы заново.
  • "--platform" поддерживается только демоном Docker с включенными экспериментальными функциями.

Я решил это в Windows 10, запустив в админке Powershell:

Рассмотрим приложения, которые вы загружаете - они основаны на Windows? Если нет, вам нужно запустить контейнер Linux.

Без использования экспериментального режима вы можете использовать Docker только в одном стиле контейнера, а не в другом. Если вы активируете экспериментальный режим, как указано выше, вы можете использовать контейнеры Windows и Linux в соответствии с требованиями приложений, которые вы загружаете в файл создания.

Ключевое примечание: экспериментальный - все еще в разработке Docker.

Это может произойти не только из-за контейнеров Windows!

Сегодня все образы докеров для Node.Js не загружаются. Всегда проверяйте изображение, которое вы пытаетесь нарисовать, прежде.

Связанная проблема Github

Если добавить --experimental не работает, рассмотрите возможность повторной установки докера для Windows.

У меня была такая же проблема с запуском образа Windows IIS с помощью Docker для Windows. Прочитав ответ Мохаммада Трабелси выше, я понял, что для решения моей проблемы мне нужно было переключить свои контейнеры (в докере) на контейнеры Windows.

Я получал эту ошибку в моем конвейере Azure DevOps.

Проблема была в том, что я выбрал Хостинг VS2017 вместо Размещенный Ubuntu. После внесения следующих изменений сборка прошла успешно.


Надеюсь, это поможет.

попробуйте указанную выше команду. То, что вы тянете, должно быть совместимо с базовой версией Windows, в которой вы находитесь. Вышеупомянутое будет работать, если вы используете Windows Server 2016.

следуйте этой теме для получения дополнительной информации

Прекращение поддержки последнего тега

В Windows необходимо отредактировать файл daemon.json или windows-daemon-options.json, расположение файла конфигурации по умолчанию в Windows -% programdata% \ docker \ config \ daemon.json или% programdata% \ docker \ resources \ windows -daemon-options.json





Необязательные функции поля в файле json позволяют пользователям включать или отключать определенные функции демона. Пример: > включает buildkit в качестве компоновщика образов докеров по умолчанию.

Для меня это из-за отказа в доступе к C: \ ProgramData \ Docker \ config \ daemon.json. После того, как я исправил это, теперь он работает. Вы можете попробовать переключиться на контейнеры Linux и переключиться обратно. Если с переключением проблем нет, то работает с разрешением доступа.

В моем случае мне пришлось обновить окна во-первых, после этого проблема ушла.

Итак, я новичок в Android и Java. Я только начал учиться. Пока я экспериментировал с намерение сегодня я допустил ошибку.

Я нашел здесь некоторые решения и попытался их реализовать, но это не сработало.

Это моя сборка.Gradle в :

Это мой AndroidManifest :

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

удалить <activity android:name=".MainActivity"/> из файл mainfest. Как вы уже определили его как:

Итак, файл манифеста, показывающий двусмысленность.

откройте манифест приложения( AndroidManifest.xml ) ,нажмите на кнопку Merged Manifest .Проверьте изображение

enter image description here

вы можете просмотреть ошибку в правом colum, попробуйте решить эту ошибку.Это может помочь кому-то с той же проблемой.

Я также столкнулся с теми же проблемами, и после многих исследований нашел решение:

  1. ваша версия min sdk должна быть такой же, как у модулей, которые вы используете, например: ваш модуль min sdk версия 14 и ваше приложение min sdk версия 9 это должно быть то же самое.
  2. если версия сборки вашего приложения и модулей не одинакова. Опять же надо же ** Короче говоря, ваше приложение build.gradle файл и манифест должны иметь одинаковые конфигурации**
  3. нет дублирование, как и те же разрешения, добавленные в файл манифеста дважды, одно и то же действие упоминается дважды.
  4. если у вас есть удалить любое действие из вашего проекта, удалите его из файла манифеста, а также.
  5. иногда его из-за метки, значка и т. д. тега файла манифеста:
  1. если две зависимости имеют разные версии пример: вы используете зависимость для appcompat v7: 26.0.0 и для facebook com.фейсбук.android: facebook-Android-sdk: [4,5) facebook использует cardview версии com.андроид.поддержка: cardview-v7: 25.3.1 и appcompat v7:26.0.0 использует cardview версии v7: 26.0.0, поэтому в двух библиотеках есть discripancy и, таким образом, дают ошибку

ошибка: не удалось выполнить задачу": app: processDebugManifest".

таким образом, используя appcompat версии 25.3.1, мы можем избежать этой ошибки

для меня это работает -

поиск ошибок слияния в AndroidManifest.xml

enter image description here

нажмите на Объединенный манифест в AndroidManifest.xml

enter image description here

вы можете просмотреть ошибку слияния манифеста в правом столбце. Это может помочь решить эту проблему.

я столкнулся с той же проблемой и я просто добавил одну строку в мой манифест.xml, и это сработало для меня.

Быстрая навигация:

Что такое DISM?

DISM, полное название которой - Служба образов развертывания и управление ими, - это встроенный инструмент Windows, впервые представленный в Windows 7 и Windows Server R2. Он может выполнять задачи обслуживания для установочного образа Windows, для сетевого или автономного образа в папке или для файлов WIM.

Инструмент DISM может быть доступен из командной строки или Windows PowerShell . Инструмент DISM можно использовать для обновления файлов и устранения проблем, когда образ Windows становится неработоспособным. Однако при запуске инструмента DISM вы можете получить код ошибки 87 или некоторые другие коды, такие как ошибка DISM 50, ошибка DISM 2, ошибка DISM 3, ошибка DISM 1639 и т. Д., Как показано на следующем рисунке:

Эти коды ошибок DISM означают, что продолжить нельзя. Итак, знаете ли вы, что может вызвать ошибку DISM 87 или другие коды ошибок DISM?

Что вызывает ошибку DISM 87?

На самом деле есть несколько причин, приводящих к ошибке DISM 87 Windows 10/8/7.

1. Команда неверна.

Это частая причина, которая приводит к ошибке DISM 87, параметр неверен. В большинстве ситуаций при вводе команды пользователи могут забыть ввести пробел перед косой чертой.

2. Команда не запускается в командной строке с повышенными правами.

Вторая причина ошибки 87 DISM заключается в том, что команда не запускается в окне командной строки с повышенными привилегиями. Если пользователи запускают эту команду в обычном окне командной строки, они могут получить ошибку 87 DISM.

3. Машина использует неправильную версию DISM.

Вы можете столкнуться с ошибкой DISM 87, если используете неправильную версию DISM при применении образа Windows 10. Таким образом, чтобы решить эту проблему, вам необходимо использовать правильную версию DISM.

Сканирование Windows 10 и восстановление зависшего диска приводят к тому, что компьютер не загружается. Этот пост покажет вам 5 способов решить эту проблему.

  1. Используйте правильную команду DISM.
  2. Запустите эту команду, используя командную строку с повышенными привилегиями.
  3. Запустите Центр обновления Windows.
  4. Запустите проверку системных файлов.
  5. Используйте правильную версию DISM.
  6. Переустановите Windows.

6 решений для ошибки DISM 87 Windows 7/8/10

В следующем разделе мы перечислим несколько решений для ошибки DISM 87. Если у вас возникла такая же проблема, попробуйте эти решения.

Решение 1. Используйте правильную команду DISM

Как мы уже упоминали в предыдущем разделе, ошибка 87 DISM может быть вызвана неправильной командой. Например, если вы введете команду без пробела перед косой чертой, например DISM / online / cleanup-image / checkhealth, вы столкнетесь с ошибкой DISM / online / cleanup-image / restorehealth 87.

Итак, чтобы решить этот код ошибки DISM, введите правильную команду. Добавьте пробел перед косой чертой, например:

  • DISM / Онлайн / Очистить образ / Scanhealth
  • DISM / Online / Очистить образ / Восстановить здоровье

После этого вы можете проверить, возникает ли ошибка DISM 87.

Решение 2. Запустите эту команду с помощью расширенной командной строки.

Некоторые люди говорят, что сталкиваются с ошибкой DISM 87, когда не запускают командную строку от имени администратора.

Итак, чтобы решить ошибку 87 DISM Windows 10, попробуйте запустить командную строку от имени администратора.

Шаг 1: Тип командная строка в поле поиска Windows 10 и выберите наиболее подходящий.

Шаг 2: Щелкните его правой кнопкой мыши, чтобы выбрать Запустить от имени администратора продолжать.

Вы также можете сослаться на пост Командная строка Windows 10: скажите Windows, что нужно действовать чтобы узнать больше о способах запуска командной строки от имени администратора.

После запуска командной строки от имени администратора введите команду, чтобы продолжить, и проверьте, решена ли проблема с ошибкой DISM 87.

Решение 3. Запустите Центр обновления Windows.

Ошибка 87 восстановления состояния DISM может быть вызвана ожидающим обновлением Windows. Итак, чтобы решить эту ошибку 87 DISM, вам необходимо установить все ожидающие обновления.

А вот и руководство.

Шаг 1. Откройте Центр обновления Windows

  1. Нажмите Windows и я ключи вместе, чтобы открыть Настройки .
  2. Во всплывающем окне выберите Обновление и безопасность продолжать.

Шаг 2. Проверьте обновления

  1. Во всплывающем окне перейдите к Центр обновления Windows таб.
  2. Тогда выбирай Проверить наличие обновлений продолжать.

Наконечник: Во время процесса обновления Windows вам может потребоваться перезагрузить компьютер.

Когда процесс будет завершен, вы можете запустить командную строку от имени администратора и снова ввести команду, чтобы проверить, устранена ли ошибка 87 DISM.

Решение 4. Запустите средство проверки системных файлов.

Если на вашем компьютере есть поврежденные системные файлы, вы также можете столкнуться с ошибкой 87 DISM Windows 10/8/7. Таким образом, чтобы решить эту проблему, вам необходимо сначала проверить и восстановить поврежденные системные файлы.

Следовательно, встроенный инструмент Windows System File Checker - хороший выбор для восстановления поврежденных системных файлов.

Шаг 1. Откройте командную строку

  1. Тип командная строка в поле поиска Windows 10 и выберите наиболее подходящий.
  2. Щелкните его правой кнопкой мыши, чтобы выбрать Запустить от имени администратора продолжать.

Шаг 2: Введите команду, чтобы продолжить

Когда процесс будет завершен, вы успешно восстановите поврежденные системные файлы, если они существуют. Затем откройте командную строку и запустите от имени администратора, введите команду еще раз и проверьте, устранена ли ошибка DISM 87.

Заметка: Помимо проверки и восстановления поврежденных системных файлов, вы также можете проверить наличие сбойные сектора на жестком диске и отремонтировать их.

Решение 5. Используйте правильную версию DISM

Здесь мы рассмотрим пятое решение по исправлению ошибки DISM 87 в Windows 10. Если вы являетесь пользователем Windows, вам необходимо запустить версию DISM для Windows 10, поскольку для этой версии требуется драйвер фильтра Wofadk.sys.

Заметка: Фильтр Wofadk.sys входит в комплект для развертывания и оценки Windows 10. Драйвер должен быть установлен и настроен с помощью Windows 10 DISM, когда команда выполняется на более ранней версии хоста Windows или в среде предустановки Windows.

Итак, чтобы решить ошибку DISM 87 в Windows 10, вам необходимо использовать версию DISM для Windows 10 с драйвером фильтра wofadk.sys. Для более подробной информации вы можете увидеть Поддерживаемые платформы DISM и Установите Windows 10 с помощью предыдущей версии Windows PE .

После этого вы можете перезагрузить компьютер и снова запустить командную строку от имени администратора, а затем ввести команду, чтобы проверить, устранена ли ошибка DISM 87 Windows 10.

Решение 6. Переустановите Windows.

Но важно то, что переустановка операционной системы приведет к потере данных. Итак, прежде чем продолжить, пожалуйста сделайте резервную копию всех важных файлов во-первых.

Убедившись в безопасности данных, вы можете продолжить переустановите операционную систему .

Читайте также: