Проблемы при установке .NET Services из MSI InstallShield 2009 - пользовательское действие не закрылось 1 MSIHANDLE - PullRequest
1 голос
/ 19 декабря 2008

Я использую InstallShield 2009 для генерации MSI для кодовой базы, которую я унаследовал. Код состоит из VB6 и .NET 2.0 кода (C # и C ++). Я занимаюсь разработкой и установкой на Windows XP SP2 .

Я создал проект InstallShield (назовите его "MyClient.ISM"), перепроектировав его из MSI , предоставленного предыдущей командой. Их конфигурации сейчас одинаковы.

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

«Ошибка 1001 InstallUtilLib.dll: неизвестная ошибка»

диалогов, а затем успешно отменяет сделанные изменения Затем я запустил MyClient.MSI с помощью команды msiexec. Например.

msiexec /lvx C:\inst_server.log /i "C:\MyClient.MSI"

Казалось, что проблема была в 2769 error. Ниже приведены местоположения ошибок из файлов журнала, приведенные ниже.

DEBUG: Error 2769: Custom Action _A11801EAD1E34CFF981127F7B95C3BE5.install 
did not close 1 MSIHANDLEs.

Это пользовательское действие пыталось установить службы .NET. Поэтому я перешел к InstallShield и удалил все пользовательские действия (установка, удаление, фиксация и откат, а также связанные SetProperty's) и собрал и снова установил. Это работало, но службы больше не были установлены. Теперь мне нужно установить эти .NET Services, используя метод InstallShield , который работает.

Ответы [ 2 ]

0 голосов
/ 30 августа 2009

У меня тоже была ошибка 1001 в базовом проекте MSI InstallShield 2009. Попробуйте добавить автоматически сгенерированный _isconfig.xml в узел «Файлы поддержки \ Независимый от языка». Это обеспечит корректный запуск CLR при вызове действия, связанного с .NET, такого как InstallerClass.

В моем случае содержимое _isconfig.xml содержало ссылку на среду выполнения .NET 2.0, но также могло ссылаться на 1.0 \ 1.1.

<?xml version="1.0"?>
<configuration>
    <startup>
        <supportedRuntime version="v2.0.50727"/>
    </startup>
</configuration>

См. Также: Q108690: ИНФОРМАЦИЯ: Создано использование модуля слияния Cith Microsoft Visual Studio .NET 2003 или 2005

0 голосов
/ 20 августа 2009

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

Из того, что я заметил, все ошибки 1001 связаны с .NET Framework.

Во-первых, я хотел бы убедиться, что вы создаете загрузчик setup.exe с помощью msi. Для этого используйте мастер InstallShield Release и обязательно включите версию .NET Framework, которая нужна вашему приложению, в загрузчик. Возможно, на вашем тестовом компьютере не установлена ​​необходимая версия .NET Framework.

Упомянутое вами пользовательское действие было автоматически сгенерировано InstallShield во время сборки. Он создал специальные действия для вызова методов в классах установщика в ваших компонентах. В вашем случае это был метод .install одного из классов установки вашего компонента.

Если вы убедились в правильности развертывания .NET Framework и у вас все еще есть проблема, подумайте об отладке классов установщика в сборке. (Проверьте здесь для получения дополнительной информации: http://www.hanselman.com/blog/BackToBasicsUsingFusionLogViewerToDebugObscureLoaderErrors.aspx)

...