MSI ведет себя по-разному после преобразования в VS2008 - PullRequest
0 голосов
/ 30 июня 2009

После преобразования решения в vs2008 с 2005 года мой msi начал вести себя по-другому.

Не все dll переписываются, и если я запускаю msi из другого процесса (с createProcess), он завершается неудачно (говоря smt как «пакет возвратил неожиданное значение»), и установка откатывается.

Я понимаю, что это типичная проблема, и решения:

  1. пометить упакованные dll с * на версии (то есть x.x. *)
  2. увеличить номер версии MSI, чтобы заставить переписать

Я пробовал с решением 2, но, к моему удивлению, я получаю всевозможные ошибки при сборке при сборке с помощью devenv (я использую devenv на круиз-контроле, все хорошо с msbuild из Visual Studio).

Теперь я собираюсь попробовать решение 1 - но я был бы признателен за любые предложения / идеи для альтернативных решений.

1 Ответ

0 голосов
/ 30 июня 2009

Отправной точкой будет понимание того, почему он ведет себя по-другому, возможно, вы можете попробовать подробное ведение журнала (взято из Запись установщика Windows в Википедии ):

  • Командная строка: при установке пакета MSI из командной строки ключ / L можно использовать для включения ведения журнала. Например, следующая команда устанавливает Package.msi и выводит подробное ведение журнала в c: \ Package.log:

    msiexec /i Package.msi /l*v c:\Package.log
    
  • Реестр Windows: для включения подробного ведения журнала можно использовать следующее значение реестра:

    Key: HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Installer
    Value Name: Logging
    Type: REG_SZ
    Data: voicewarmupx
    

Другие вещи, которые стоит попробовать:

  • Сравните копию файла проекта установщика от до преобразования и одну копию после преобразования, чтобы увидеть, что Visual Studio неожиданно «затормозила» что-то в этом
  • Вы вызываете CreateProcess с необычным StartupInfo или другим параметром?
...