Идентификатор компонента в файле манифеста не соответствует запрошенному идентификатору компонента
Я пытаюсь развернуть приложение ClickOnce, но установка на клиенте завершается неудачно. Вот журнал ошибок:
Основной exe, который мне нужно развернуть, - это MyProductFrontDesk.exe , который имеет зависимость от MyProductSiteServer.exe - и именно там, по-видимому, возникает ошибка: "ссылка в манифесте не соответствует идентификатору загруженного assembly MyProductSiteServer.exe."
Какой манифест нуждается в исправлении? И как?
Была проблема с Visual Studio 2008, которая решается тем, что не встраивается манифест по умолчанию - один из комментариев к этой статье предполагает, что проблема все еще существует в Visual Studio 2010.
В свойствах проекта - > вкладка приложение - > ресурсы - > значок checkbox и манифест параметр "Embed manifest with default settings" вызвал проблему. Установка его на "Create application without a manifest" устраняет проблему.
У меня была та же проблема, когда я добавил ссылку на другой проект.
Способ решить эту проблему состоял в том, чтобы включить параметры безопасности ClickOnce во всех упомянутых проектах, как объяснил здесь Ян (Курсив мой):
Для меня это было решено таким образом, чтобы убедиться, что все проекты в рамках решения, которые выставили "вкладку безопасности" в своих "свойствах проекта", имели опцию "включить параметры безопасности ClickOnce", отмеченную галочкой с опцией "это приложение полного доверия". Это связано с правильным созданием Манифеста, и приложение не будет установлено, если эти параметры не установлены для всех проектов в решении, которые этого требуют.
Связанный пост на форуме уже истек, но он доступен в архиве здесь .
Я столкнулся с той же проблемой, но мое решение было совсем другим.
Мое приложение ClickOnce ссылалось на другой файловый проект EXE в моем решении, поэтому, когда клиент загрузил его и там был еще один файл EXE, у него не было манифеста.
Удаление зависимости от другого исполняемого файла решило мою проблему.
Я пытаюсь развернуть приложение с двумя исполняемыми файлами, один из которых является приложением it self. Я использовал публикационную ванну на VS 2008 и попытался опубликовать вручную с помощью MageUI.exe. в обоих случаях я получаю эту ошибку (в отношении второго исполняемого файла): Ссылка в.
Я подтвердил, что эта проблема также существует в Visual Studio 2010. Выбор "Create application without a manifest" в свойствах проекта-приложение-ресурсы решил эту проблему.
Это также может произойти, если у вас есть две разные версии пакета NuGet, на которые ссылаются разные файлы DLL в вашем проекте. В моем случае я использовал фреймворк под названием Catel, и у меня была более новая версия, упомянутая в одном файле DLL, чем в другом (оплошность), но это привело к тому, что ClickOnce выплюнул эту ошибку. Обращение к той же версии решило проблему.
У меня была точно такая же проблема. Я не мог удалить зависимость, так как она была необходима основному проекту. Второй проект был консольным.
Я перешел в библиотеку классов, и тогда все это сработало.
У меня была та же проблема, но мое решение состояло в том, чтобы изменить 'Platform target' на 'x86' (свойства проекта -> вкладка сборка). Он был установлен на любой CPU. Как только я изменил настройку и переиздал ее, установщик ClickOnce смог завершить работу.
Я испытал ту же ошибку при развертывании с проектом, настроенным на отладку. Когда он был изменен обратно на Release, ошибки не было.
Еще один обходной путь, в случае, если зависимость exe с плохим манифестом приложения не может быть изменена (скажем, исходящая из пакета NuGet). Двоичный файл может быть включен в качестве содержимого с фиктивным расширением, поэтому ClickOnce не пытается проверить манифест, а затем переименован во время запуска приложения.
Также решено для ClickOnce .exe вызова .exe вызова. exe.
У меня есть приложение ClickOnce Windows форм, которое ссылается на второе приложение Windows форм, которое, в свою очередь, ссылается на третье приложение Windows форм. (Эти второе и третье приложения являются файлами EXE , а не DLL для простоты, поскольку они с равной вероятностью будут запускаться автономно или вызываться с переданными им свойствами.)
Мне пришлось прокомментировать BOTH содержание манифеста второго и третьего приложений. :
Он отлично работает.
У меня была та же проблема, и я перепробовал все предыдущие предложенные здесь решения, и все они не сработали.
Я исправил это, изменив местоположение обновления. Из свойств проекта -> публикация - > обновления . Измените расположение обновления на опубликованную папку.
Если у вас есть одна основная программа, которая ссылается на другую, то вы должны сделать трюк "Create application without a manifest" с программой основной программы:
Проект -> свойства - > вкладка приложение ->ресурсы -> Манифест ->выпадающий список "Create application without a manifest"
а затем переключитесь на свойства проекта указанной программы и повторите процесс.
Я использую Visual Studio 2012 на Windows 7 и должен опубликовать решение, состоящее из двух проектов.
Как отметил Эдуардо, маркировка обоих проектов как ClickOnce и включение приложения полного доверия решает эту проблему.
У меня была немного другая проблема, которую я смог решить, и поэтому я хотел опубликовать ее. Мои проблемы заключались в том, что я управлял 3 ветвями из TFS. Я обновил элементы управления Telerik в одной из своих ветвей, но не в других. Как только я обновил элементы управления Telerik во всех 3 ветвях и переиздал их, это сработало, и эта ошибка исчезла.
В то время я работал под управлением VS2015.
Это интересно. Я просто повторно развертываю приложение, и проблема решена. Может быть, повреждение файла из-за Сети.
В моей версии Visual Studio 2017, версии 15.6.6 (но, возможно, она была там раньше) Я обнаружил, что файлы приложения находятся не в правой кнопке Exe Project and Publish, а на вкладке Project Properties Publish, где вы можете установить, какие файлы приложения вы хотите поместить в установку.
Так что уберите те, которые являются проблемой. Если что-то уже установлено на компьютере, где будет установлено это приложение, нет никаких причин пытаться переустановить его в любом случае, кроме тех случаев, когда вам нужна ссылка для его запуска. Если бы он устанавливал то, что уже было на компьютере, но в другую папку, это могло бы не сработать. Лучше всего использовать другие приложения или сборки dll в том же месте, где они были установлены ранее.
Я использую mage.exe для создания своего манифеста. Добавление этого к моему .csproj исправило проблему. Вы также можете попробовать флаг компилятора -nowin32manifest ; я его еще не тестировал. Я не вижу "Create application without a manifest" Стюарта в Visual Studio 2017; я думаю, что это то, что он делает.
У меня тоже есть это в моем .csproj :
У меня была та же проблема пару минут назад, и ниже приведены шаги, которые я использовал для ее решения.
Ключ
- a = основной проект (проект, который вы хотите опубликовать, например myProduct)
- b = эталонный проект (например, MyProductSiteServer)
Контрольный список
Перейдите в раздел Свойства - > приложение - > ресурсы -> проверить значки и манифест (как для a, так и для b)
Перейдите в раздел Свойства - > сборка : убедитесь, что a и b находятся на одной целевой платформе
Перейдите в раздел свойства - > безопасность и убедитесь, что a и b имеют следующие настройки: "Enable ClickOnce security settings" и "This is a full trust application"
Перейдите в раздел Свойства - > публикация : я рекомендую вам изменить путь к папке публикации
У меня была точно такая же проблема с моим приложением VS 2019.
Я попытался создать приложение без манифеста, однако это не сработало.
Однако сработало следующее:
- Перейдите в раздел сборка->публикация->приложение
- Нажмите на кнопку "Assembly Information"
- Отметьте галочкой опцию "Make assembly COM-Visible"
Надеюсь, это поможет!
Похожие вопросы:
Вот знаменитая ошибка, которую я получаю на VS 2010, используя ClickOnce deployment. Он отлично работает как локально, так и с настройкой deployment. Издательство работает нормально. Вот ошибка.
Я пытаюсь развернуть приложение с двумя исполняемыми файлами, один из которых является приложением it self. Я использовал публикационную ванну на VS 2008 и попытался опубликовать вручную с помощью.
У меня есть приложение winforms, развернутое с помощью ClickOnce. Но когда я пытаюсь опубликовать, это приводит к ошибке, например, проверка приложения не удалась, пожалуйста, свяжитесь с.
После изучения этой конкретной проблемы выяснилось, что существует несколько довольно распространенных сценариев, которые могут вызвать этот код ошибки. Вот список потенциальных виновников, которые могут быть ответственны за запуск этих событий SideBySide Error 59:
Теперь, когда вы знакомы со всеми потенциальными сценариями, которые могут привести к этой ошибке, вот список методов, которые некоторые пользователи успешно использовали для решения проблемы на своем компьютере:
Метод 1. Установите отсутствующий Microsoft Visual C ++ Redist. Пакеты
Наиболее частой причиной этого конкретного кода ошибки является отсутствие зависимости Visual C ++, которую приложение, которое вы пытаетесь запустить, ожидает использовать. Если вы замечаете новые экземпляры ошибки SideBySide 59, когда вы не пытаетесь активно открыть программу, есть вероятность, что служба запуска не может запуститься из-за отсутствия Visual C ++ Redist. упаковка.
Если этот сценарий применим, вы сможете решить проблему, установив отсутствующий Visual C ++ Redist. Упакуйте и перезагрузите компьютер. Но имейте в виду, что для разных программ потребуется разный Redis. Пакеты, поэтому вам нужен способ выяснить, какая среда выполнения VC ++ ожидается в первую очередь.
Для получения пошаговых инструкций о том, как это сделать, следуйте приведенным ниже инструкциям:
Примечание. Если вы уже знаете, какая зависимость отсутствует, полностью пропустите первые 3 шага.
- Нажмите клавишу Windows + R, чтобы открыть диалоговое окно «Выполнить». Внутри текстового поля введите cmd и нажмите Ctrl + Shift + Enter, чтобы открыть командную строку с повышенными привилегиями. Когда вы увидите всплывающее окно UAC (Контроль учетных записей пользователей), нажмите Да, чтобы предоставить административный доступ.Открытие окна CMD с доступом администратора
- В командной строке с повышенными привилегиями введите следующую команду и нажмите Enter, чтобы запустить команду sxTrace: SxsTrace Trace -logfile: SxsTrace.etl
- После успешного выполнения первой команды откройте программу, которая вызывает ошибку SideBySide. Не закрывайте командную строку с повышенными привилегиями.
- Затем вернитесь в командную строку с повышенными привилегиями и введите следующую команду для создания SxsTrace.etl: sxstrace Parse -logfile: SxSTrace.etl -outfile: SxSTrace.txt
- После успешной обработки команды откройте файл SxSTrace.txt в текстовом редакторе и проверьте его, чтобы увидеть, какая зависимость времени выполнения VC ++ отсутствует.
- Затем откройте браузер по умолчанию и получите доступ к официальному страница загрузки со всеми поддерживаемыми пакетами Visual C ++ Redist в Windows 10.
- Щелкните отсутствующую зависимость VC ++ и следуйте инструкциям на экране, чтобы загрузить установщик, совместимый с битовой версией Windows, которая в настоящее время запущена на вашем компьютере. Если Microsoft попросит вас установить любое вредоносное ПО, откажитесь.Скачивание отсутствующего Visual C ++ Redist. Упаковка
- После завершения загрузки установщика следуйте инструкциям на экране, чтобы завершить установку, затем перезагрузите компьютер и посмотрите, будет ли проблема решена при следующем запуске системы.
Если этот метод был неприменим или вы все еще сталкиваетесь с той же проблемой SideBySide Error 59, перейдите к следующему потенциальному исправлению ниже.
Метод 2: запуск сканирования SFC и DISM
Если первое возможное исправление не помогло в вашем случае, вам следует обратить внимание на потенциально поврежденный системный файл, который влияет на использование необходимых зависимостей VC ++.
Это более вероятно, если у вас возникнут другие похожие ошибки времени выполнения с несколькими установленными программами.
Примечание. Хотя эти два инструмента имеют некоторое сходство, мы рекомендуем запускать оба сканирования в быстрой последовательности, чтобы повысить ваши шансы на исправление поврежденных системных файлов.
Запуск сканирования SFC
Примечание. Это полностью локальный инструмент, который не требует надежного подключения к Интернету.
После запуска этой процедуры очень важно не закрывать окно CMD, даже если программа выглядит так, как будто зависла. Дождитесь завершения процесса, так как прерывание операции может вызвать логические ошибки на жестком или твердотельном диске.
После того, как сканирование SFC будет окончательно завершено, перезагрузите компьютер и посмотрите, будет ли проблема устранена после завершения следующего запуска компьютера.
Если та же проблема SideBySide Error 59 все еще возникает, запустите сканирование DISM и следуйте инструкциям на экране, чтобы завершить операцию.
Развертывание сканирования DISM
Примечание. В отличие от SFC, DISM использует подкомпонент Центра обновления Windows для загрузки исправных эквивалентов для замены поврежденных системных файлов. В связи с этим вам необходимо убедиться, что у вас есть надежный Интернет, прежде чем начинать эту операцию.
После успешного завершения сканирования DISM перезагрузите компьютер и проверьте, перестали ли появляться новые экземпляры той же ошибки.
Если проблема не устранена, перейдите к следующему потенциальному исправлению ниже.
Метод 3: удаление панели Bing (если применимо)
По словам некоторых затронутых пользователей, вы также можете ожидать появления этого кода ошибки из-за расширения панели Bing, которое пытается использовать поврежденный файл .dll. Эта проблема существует в Windows 10 в течение многих лет, но Microsoft еще не выпустила исправление для этой проблемы.
Для получения пошаговых инструкций о том, как это сделать, следуйте приведенным ниже инструкциям:
Если вы все еще видите новые экземпляры ошибки SideBySide 59 в средстве просмотра событий или это конкретное исправление не применимо, перейдите к последнему потенциальному исправлению ниже.
Метод 4: обновление каждого компонента Windows
Если ни один из вышеперечисленных методов не позволил вам остановить появление новых экземпляров ошибки «Ошибка в файле манифеста или политики» в средстве просмотра событий, есть большая вероятность, что вы имеете дело с каким-либо типом повреждения системного файла, которое не может быть устранено. условно.
Я пытаюсь развернуть приложение ClickOnce, но установка на клиенте не выполняется. Вот журнал ошибок:
Главный исполняемый файл, который мне нужно развернуть, - это MyProductFrontDesk.exe , который зависит от MyProductSiteServer.exe , и, похоже, именно здесь возникает ошибка: "Ссылка в манифесте не соответствует идентификатору загруженного сборка MyProductSiteServer.exe ".
Возникла проблема с Visual Studio 2008, которая решается путем отказа от встраивания манифеста по умолчанию. - один из комментариев к этой статье предполагает, что проблема все еще существует в Visual Studio 2010.
В свойствах проекта -> вкладка Приложение -> Ресурсы -> флажок Значок и манифест , параметр «Встроить манифест с настройками по умолчанию» вызывал проблему. . Установка для него значения «Создать приложение без манифеста» устраняет проблему.
У меня была такая же проблема, когда я добавил ссылку на другой проект.
Чтобы решить эту проблему, включите Настройки безопасности ClickOnce во всех упомянутых проектах, как объяснил Ян здесь (выделено мной):
Для меня способ решения этой проблемы заключался в том, чтобы убедиться, что все проекты в рамках решения, которые открывают " вкладку безопасности " в своих " свойствах проекта ", имеют параметр " Включить параметры безопасности ClickOnce "отмечен флажком" Это приложение с полным доверием ". Это связано с правильным созданием манифеста, и приложение не будет установлено, если эти параметры не установлены для всех проектов в рамках решения, которым это необходимо.
Я столкнулся с той же проблемой, но мое решение было совсем другим.
Мое приложение ClickOnce ссылалось на другой проект EXE-файла в моем решении, поэтому, когда клиент загрузил его, и был еще один EXE-файл, у него не было манифеста.
Удаление зависимости от другого исполняемого файла решило мою проблему.
Я подтвердил, что проблема также существует в Visual Studio 2010. Выбор «Создать приложение без манифеста» в свойствах проекта - Приложение - Ресурсы решил проблему.
У меня возникла такая же ошибка при развертывании с проектом, установленным на Debug. Когда он был изменен обратно на Release, ошибки не было.
Это также может произойти, если у вас есть две разные версии пакета NuGet, на которые есть ссылки в разных файлах DLL в вашем проект. В моем случае я использовал фреймворк под названием Catel, и у меня была более новая версия, указанная в одном файле DLL, чем в другом (надзор), но это заставило ClickOnce выплюнуть эту ошибку. Ссылка на ту же версию решила проблему.
У меня была такая же проблема, но я решил изменить «Целевую платформу» на «x86» (Свойства проекта -> Вкладка «Сборка»). Было установлено значение «Любой процессор». Как только я изменил настройку и переиздал, установщик ClickOnce смог завершить работу.
У меня была точно такая же проблема. Я не мог удалить зависимость, так как это было необходимо для основного проекта. Второй проект был консольным.
Я перешел на Библиотеку классов , и все заработало.
У меня была такая же проблема, и я попробовал все предложенные ранее решения, но все они не сработали.
Исправил, изменив место обновления. Из свойств проекта -> Опубликовать -> Обновления . Измените место обновления на вашу опубликованную папку.
Другой обходной путь, если зависимость exe с манифестом плохого приложения не может быть изменена (например, из пакета NuGet). Двоичный файл может быть включен в качестве содержимого с фиктивным расширением, поэтому ClickOnce не пытается проверить манифест, а затем переименовывать его во время запуска приложения.
ТАКЖЕ РЕШЕНО ДЛЯ ClickOnce .exe, вызывающего .exe, вызывающего .exe.
У меня есть приложение Windows Forms ClickOnce, которое ссылается на второе приложение Windows Forms, которое, в свою очередь, ссылается на третье приложение Windows Forms. (Эти второе и третье приложения представляют собой файлы EXE, а не файлы DLL для простоты, поскольку они одинаково вероятно, будет запущен автономно или вызван с переданными им свойствами.)
Мне пришлось закомментировать оба содержимого манифеста второго и третьего приложений за:
Я использую mage.exe для создания своего манифеста. Добавление этого в мой .csproj устранило проблему. Вы также можете попробовать -nowin32manifest флаг компилятора; Я не тестировал. Я не вижу команды Стюарта «Создать приложение без манифеста» в Visual Studio 2017; Я думаю, что это то, что он делает.
У меня также есть это в моем .csproj :
Если у вас есть одна основная программа, которая ссылается на другую, вам нужно выполнить трюк «Создать приложение без манифеста» в программе основной программы:
Проект -> Свойства -> вкладка "Приложение" -> Ресурсы -> Манифест -> раскрывающийся список "Создать приложение без манифеста"
А затем переключитесь на свойства проекта указанной программы и повторите процесс.
У меня была такая же проблема пару минут назад, и ниже приведены шаги, которые я использовал для ее решения.
Ключ
- a = Основной проект (проект, который вы хотите опубликовать, например, myProduct)
- b = Эталонный проект (например, MyProductSiteServer)
Перейдите к свойствам -> Приложение -> Ресурсы -> проверьте значки и манифест (как для a, так и для b)
Перейдите к свойствам -> Сборка: убедитесь, что a и b находятся на одной целевой платформе
Перейдите к свойствам -> Безопасность и убедитесь, что для пунктов a и b отмечены следующие параметры: «Включить параметры безопасности ClickOnce» и «Это приложение с полным доверием».
Перейдите к свойствам -> Опубликовать: я рекомендую вам изменить путь к папке публикации.
У меня была такая же проблема с моим приложением VS 2019.
Я попытался создать приложение без манифеста, но это не сработало.
Однако работало следующее:
Надеюсь, это поможет!
Похоже, что проблема вызвана setup.exe в vs 2019. Кажется, что exe не обновляет свою версию при выполнении нового развертывания. обходной путь для меня -
- удалите все в папке развертывания.
- снимите флажок «Создать программу установки для установки необходимых компонентов» в разделе «Свойства» => «Опубликовать» => «Необходимые компоненты».
- сделать развертывание.
- вернитесь и снова включите «Создать программу установки для установки необходимых компонентов». предполагаю, что этот процесс заставит vs 2019 обновить setup.exe до правильной версии.
Также Project -> Properties -> Application Tab -> Resources -> Manifest -> раскрывающийся список «Создать приложение без манифеста» будет работать, но приложение не будет обновляться, если будет более новая версия, поэтому я должен вернитесь к описанному выше обходному пути.
Я использую Visual Studio 2012 в Windows 7, и мне нужно опубликовать решение, состоящее из двух проектов.
Как отметил Эдуардо, отметка обоих проектов как ClickOnce и включение приложения полного доверия решает проблему.
У меня была немного другая проблема, которую я смог решить, поэтому я хотел опубликовать ее. Мои проблемы заключались в том, что я запускал 3 ветки из TFS. Я обновил элементы управления Telerik в одном из своих филиалов, но не в других. Как только я обновил элементы управления Telerik во всех 3 ветках и повторно опубликовал его, он заработал, и эта ошибка исчезла.
В то время я работал с VS2015.
Это интересно. Я просто повторно развернул приложение и проблема решена. Возможно повреждение файла из-за сети.
В моей версии Visual Studio 2017 версии 15.6.6 (но, возможно, она была там раньше), я обнаружил, что файлы приложения не находились в Exe Project и публикации правой кнопкой мыши, а на вкладке публикации свойств проекта, где вы можете указать, какие файлов приложения, которые вы хотите поместить в установку.
Так что избавьтесь от проблемных. Если что-то уже установлено на компьютере, на котором будет установлено это приложение, нет причин пытаться переустановить его в любом случае, кроме случаев, когда вам нужна ссылка для его запуска. Если бы он установил то, что уже было на компьютере, но в другую папку, это могло бы не сработать. Лучше всего использовать другие приложения или сборки dll в том же месте, где они были установлены ранее.
1С:Предприятие — программный продукт компании 1С, предназначенный для автоматизации деятельности на предприятии.
Первоначально, продукт 1С:Предприятие был предназначен для автоматизации бухгалтерского учёта и управленческого учёта (включая начисление зарплаты и управление кадрами). Но сегодня этот продукт находит своё применение в областях, далёких от собственно бухгалтерских задач.
1С:Предприятие — это (одновременно) и технологическая платформа, и пользовательский режим работы. Технологическая платформа предоставляет объекты (данных и метаданных) и механизмы управления объектами. Объекты (данные и метаданные) описываются в виде конфигураций. При автоматизации какой-либо деятельности составляется своя конфигурация объектов, которая и представляет собой законченное прикладное решение. Конфигурация создаётся в специальном режиме работы программного продукта под названием «Конфигуратор», затем запускается режим работы под названием «1С:Предприятие», в котором пользователь получает доступ к основным функциям, реализованным в данном прикладном решении (конфигурации) [1] .
Содержание
PostgreSQL
Установка
Гарантированно работает связка:
- 1C 8.2.15.301 + PostgreSQL 9.0.3-3.1С (с сайта 1С) + Windows Server 2008 SP2 (x64).
1С-версия PostgreSQL 9.0.3-3.1С при установке на чистой Windows Server 2008 SP2 (x64) влетает с ошибкой:
Ошибка создания контекста архивации для "C:\Program Files (x86)\PostgreSQL\9.0.3-3.1C\bin\initdb.exe". Ошибка в файле манифеста или политики "C:\Program Files (x86)\PostgreSQL\9.0.3-3.1C\bin\Microsoft.VC90.CRT.MANIFEST" в строке 4. Идентификатор компонента в файле манифеста не соответствует запрошенному идентификатору компонента. Ссылка - Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.21022.8". Определение - Microsoft.VC90.CRT,processorArchitecture="x86",publicKeyToken="1fc8b3b9a1e18e3b",type="win32",version="9.0.30729.1". Используйте sxstrace.exe для подробной диагностики.
Временное решение: скачать дистрибутив PostgreSQL 9.0.7 с официального сайта разработчиков (дистрибутив весит больше 1С-овского), нормально без ошибок установить с настройками по-умолчанию, удалить из системы через "Программы и компоненты" панели управления, после чего без ошибок установить версию от 1С.
Правильное решение: Поставить Microsoft Visual C++ 2008 Redistributable, затем лишь приступать к установке PostgreSQL 9 от 1C.
Инсталляция PostgreSQL 9.1.2-1.1C. Запускаем установочный файл программы PostgreSQL
Читайте также: