2016-03-23 4 views
-1

У моего установщика wix есть настраиваемое действие, которое выполняется только во время обновления и вызывает exe для редактирования нескольких условий в кэшированных msi. Это настраиваемое действие выполняется до «Удалить существующие продукты». Установщик успешно работает без ошибок во всех средах Windows, кроме 2012 R2.Установщик не работает на Windows Server 2012 R2

Windows Server 2012 R2, программа установки не работает в этом конкретном настраиваемом действии и выдает ошибку 110. Я попытался запустить установщик как администратор, но все же он терпит неудачу. Я не знаю причины этой неудачи. Буду признателен за любую оказанную помощь.

+0

Ошибка 110 означает "Система не может открыть устройство или файл. Это может быть связано с множеством вещей, начиная с антивируса и заканчивая отсутствием установленной сетевой инфраструктуры. Что именно вы пытаетесь сделать в этом обычном действии? – yossiz74

+0

@ yossiz74 Да, я знаю значение 110. Это пользовательское действие успешно вызывает exe (подтверждено из журналов). Предполагается, что exe отредактирует несколько условий в кэшированных msi во время обновления. Экзе не удается открыть базу данных MSI с кешированием, когда я запускаю обновление в 2012 году в среде enviromnent. – Ankit

+0

Ankit, как вы решили эту проблему? –

ответ

0

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

Если вы действительно хотите, чтобы это был один шаг, я бы построил setup.exe для MSI и подключил чистку к этому, прежде чем запускать ваш основной MSI.

1

Если установленный продукт сломан, то стандартное решение должно исправить его патчем (msp) или обновлением путем переустановки/повторного кэширования продукта с использованием фиксированного MSI. «Исправить это», я, очевидно, имею в виду, что все это приводит к сбою обновления в этих условиях.

В противном случае проблема заключается в том, что программа и выяснение, где именно и почему она не работает. Мы не знаем, вызываете ли вы MsiOpenDabase, используете ли вы C# P/Invoke и так далее. Он нуждается в возможности отслеживания, чтобы сказать, что работает, а что нет, потому что вопрос в конечном счете связан с тем, почему код не работает на конкретной версии ОС.

Есть много результатов для MsiOpenDatabase и 110, например, как это:

Error 110 (open_failed) MsiOpenDatabase - error in the loop

+0

Я использую MsiOpenDatabase в своем коде. – Ankit

Смежные вопросы