Избегайте Wix Burn (Bundle), пытаясь установить msi, который является точно такой же версией [duplicate]

Я использую SQL Server 2016 и Window 10.

Прежде всего, нужно разрешить удаленное подключение к SQL Сервер. Я сделал, чтобы ввести sqlservermanager13.msc в меню «Пуск», чтобы открыть диспетчер конфигурации SQL Server. Убедитесь, что статус TCP / IP включен.

Проверьте номер своего TCP-порта, дважды щелкнув имя протокола TCP / IP. Обычно это по умолчанию 1433.

Следующие процедуры настраивают брандмауэр Windows с помощью оснастки «Брандмауэр Windows с расширенной безопасностью» Microsoft Management Console (MMC) -в. Брандмауэр Windows с расширенной безопасностью настраивает только текущий профиль.

Чтобы открыть порт в брандмауэре Windows для доступа к TCP

  1. В меню «Пуск» выберите «Выполнить», введите WF.msc и нажмите «ОК».
  2. В брандмауэре Windows с расширенной безопасностью на левой панели щелкните правой кнопкой мыши Правила входящих сообщений и выберите «Новое правило» на панели действий.
  3. В диалоговом окне «Тип правила» выберите Порт, а затем нажмите «Далее».
  4. В диалоговом окне «Протокол и порты» выберите TCP. Выберите «Определенные локальные порты», а затем введите номер порта экземпляра Database Engine, например 1433 для экземпляра по умолчанию. Нажмите «Далее».
  5. В диалоговом окне «Действие» выберите «Разрешить подключение» и нажмите «Далее».
  6. В диалоговом окне «Профиль» выберите любые профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к механизму базы данных, а затем нажмите «Далее».
  7. В диалоговом окне «Имя» введите имя и описание этого правила и нажмите «Готово».

Еще одна вещь, которую нужно настроить.

Чтобы открыть доступ к SQL Server при использовании динамических портов

  1. В меню «Пуск» выберите «Выполнить», введите «WF» .msc, а затем нажмите «ОК».
  2. В брандмауэре Windows с расширенной безопасностью на левой панели щелкните правой кнопкой мыши «Правила входящих» и выберите «Новое правило» на панели действий.
  3. В диалоговом окне «Тип правила» выберите «Программа» и нажмите «Далее».
  4. В диалоговом окне «Программа» выберите «Путь к этой программе». Нажмите «Обзор» и перейдите к экземпляру SQL Server, к которому вы хотите получить доступ через брандмауэр, и нажмите «Открыть». По умолчанию SQL Server находится в папке C: \ Program Files \ Microsoft SQL Server \ MSSQL13.MSSQLSERVER \ MSSQL \ Binn \ Sqlservr.exe. Нажмите «Далее».
  5. В диалоговом окне «Действие» выберите «Разрешить подключение» и нажмите «Далее».
  6. В диалоговом окне «Профиль» выберите все профили, описывающие среду подключения к компьютеру, когда вы хотите подключиться к движку базы данных и нажмите «Далее».
  7. В диалоговом окне «Имя» введите имя и описание этого правила и нажмите «Готово».

Взгляните на Microsoft doucmentation Настройте брандмауэр Windows для доступа к базе данных

0
задан randomuser15995183 13 February 2017 в 14:47
поделиться

2 ответа

Часть элемента MajorUpgrade имеет атрибут AllowSameVersionUpgrades , значение по умолчанию no.

Значение «Когда установлено значение« нет »(по умолчанию), установка продукта с той же версией и кодом обновления (но с другим кодом продукта) разрешена и обрабатывается MSI как два продукта. Если установлено« да », WiX устанавливает атрибут msidbUpgradeAttributesVersionMaxInclusive, который сообщает MSI относиться к продукту с той же версией, что и к основному обновлению. "

Проверьте этот атрибут и посмотрите, помогает ли эта проблема. Лучшая практика заключается в том, чтобы изменить версию на все msis и комплект, это делается автоматически частью конвейера CI / CD для выпуска продукта.

1
ответ дан Arkady Sitnitsky 15 August 2018 в 22:15
поделиться
  • 1
    Кроме того, вы можете проверить свои MSI с помощью Orca.exe от Microsoft, если вы еще не используете этот инструмент. – Brian Sutherland 13 February 2017 в 18:42
  • 2
    Или instedit, который имеет функцию сравнения MSI. – Arkady Sitnitsky 13 February 2017 в 19:00
  • 3
    Спасибо за комментарии @ArkadySitnitsky и BrianSutherland. Я пробовал с AllowSameVersionUpgrades как да и как нет, но в обоих случаях он устанавливает все MSI. Я хочу, чтобы установщик пропустил модули, если версия такая же, и установите только в том случае, если версия больше, но этого не происходит. – randomuser15995183 13 February 2017 в 19:52

Burn не будет устанавливать пакет, если он уже установлен. Но если вы перекомпилируете пакет с Product/@Id="*", то изменится идентификатор пакета (код продукта и код пакета). Поэтому Burn устанавливает то, что выглядит как новый пакет. Если вы хотите, чтобы Burn пропускал такой пакет, не перестраивайте его.

1
ответ дан Bob Arnson 15 August 2018 в 22:15
поделиться
  • 1
    О, хорошо. Поэтому мы каждый раз упаковываем пакет в новую настройку, поэтому, думаю, когда мы его снова создадим, даже если нет изменений, все модули будут построены снова, так что все модули будут иметь разный код продукта, так как мы используем идентификатор продукта = & quot; * & quot; ;. Любой другой путь вокруг него Боб? – randomuser15995183 14 February 2017 в 06:08
  • 2
    Не используйте Product/@Id="*" или не перестраивайте пакеты. – Bob Arnson 14 February 2017 в 20:00
Другие вопросы по тегам:

Похожие вопросы: