WIX не срабатывает XmlFile при сетевой установке
От: m-Dima Россия  
Дата: 03.03.11 14:21
Оценка:
привет, all!
помогите, плиз...

есть проект инсталятора на Wix 3.5
там есть такие строки

<Fragment>
    <DirectoryRef Id="INSTALLLOCATION" FileSource="С:\myApp\" DiskId="1">
      
      <Component Id="component0" Guid="D31F130C-3859-46DD-BAED-63B1D11C54E5" DiskId="1" KeyPath="yes">
        
        <File Id="file1" Name="myApp.exe"/>
        <File Id="AppConfig" Name="myApp.exe.config"/>

        <util:XmlConfig
            Id="xmlDelete"
            File="[#AppConfig]"
            Action="delete"
            ElementPath="/configuration/userSettings/mySettings/setting[\[] @name='ServerHost' [\]]"
            On="install"
            Sequence="1"/>

        <util:XmlFile
            Id="xmlChange"
            File="[#AppConfig]"
            Action="setValue"
            ElementPath="/configuration/userSettings/mySettings/setting[\[] @name='ServerHost' [\]]/value"
            Value="[ADDRESS_HOST]"
            Permanent="no"
            SelectionLanguage="XPath"
            Sequence="2"/>
и т.д.


запускаю msi-файл — с интерактивными диалогами на локальную машину все работает прекрасно, нужный параметр xml-файла обновляется, о чем в логе и пишется...

запускаю сетевую установку без участия пользователя:
msiexec /a InstallerWix.msi /q /l*vx %logFile% ROOTDRIVE="\\127.0.0.1\Public\" ADDRESS_HOST="%addressHost%"

проект разворачивается правильно и где надо, но XmlConfig и XmlFile не срабатывают... о них даже даже нет упоминания в логе...

как заставить их работать при сетевой установке?
заранее спасибо...
Re: WIX не срабатывает XmlFile при сетевой установке
От: bnk СССР http://unmanagedvisio.com/
Дата: 04.03.11 05:27
Оценка:
Здравствуйте, m-Dima, Вы писали:

MD>запускаю сетевую установку без участия пользователя:

MD>msiexec /a InstallerWix.msi /q /l*vx %logFile% ROOTDRIVE="\\127.0.0.1\Public\" ADDRESS_HOST="%addressHost%"

msiexec /a

Это не установка в прямом смысле слова, а выкладывание всех файлов содержащихся в инсталляторе, в заданную папку (т.н. "административная установка", или создание административного образа). При этом обычно не производится больше никаких действий, т.е. просто тупо выдергиваются файлы из пакета и складываются в заданную папку.
Установка это обычно:

msiexec /i

Принципиально, выполнение действия по изменению xml файла можно добавить также во время административной установки. Однако имей в виду, что административная установка предполагает, что потом пользователи сделают еще одну, обычную установку из образа, созданного адаминистратором. Т.е. может оказаться что твое действие будет выполнено дважды — первый раз во время "административной установки" и второй раз, когда пользователь ставит программу себе из административного образа.

Если тебе это не важно, то чтобы включить действие по изменению xml-файлов в последовательность действий,
выполняемых при административной установке, можно сделать так (добавить это в <Product>):

    <AdminExecuteSequence>
      <Custom Action="SchedXmlFile" After="InstallFiles" />
    </AdminExecuteSequence>
Re[2]: WIX не срабатывает XmlFile при сетевой установке
От: m-Dima Россия  
Дата: 04.03.11 09:49
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, m-Dima, Вы писали:


MD>>запускаю сетевую установку без участия пользователя:

MD>>msiexec /a InstallerWix.msi /q /l*vx %logFile% ROOTDRIVE="\\127.0.0.1\Public\" ADDRESS_HOST="%addressHost%"

bnk>msiexec /a


bnk>Это не установка в прямом смысле слова, а выкладывание всех файлов содержащихся в инсталляторе, в заданную папку (т.н. "административная установка", или создание административного образа). При этом обычно не производится больше никаких действий, т.е. просто тупо выдергиваются файлы из пакета и складываются в заданную папку.

bnk>Установка это обычно:

bnk>msiexec /i


bnk>Принципиально, выполнение действия по изменению xml файла можно добавить также во время административной установки. Однако имей в виду, что административная установка предполагает, что потом пользователи сделают еще одну, обычную установку из образа, созданного адаминистратором. Т.е. может оказаться что твое действие будет выполнено дважды — первый раз во время "административной установки" и второй раз, когда пользователь ставит программу себе из административного образа.


bnk>Если тебе это не важно, то чтобы включить действие по изменению xml-файлов в последовательность действий,

bnk>выполняемых при административной установке, можно сделать так (добавить это в <Product>):

bnk>
bnk>    <AdminExecuteSequence>
bnk>      <Custom Action="SchedXmlFile" After="InstallFiles" />
bnk>    </AdminExecuteSequence>
bnk>

большое спасибо за разъяснение и подсказку
с этими строчками xml-обработка пытается выполнится, но... возникает ошибка:

ExecXmlFile: Error 0x80070005: failed to load XML file: 127.0.0.1\public\myApp\myApp.exe.config
MSI (s) (D0!9C) [12:18:06:208]: Продукт: Apollo.Net -- Ошибка 25531. Не удалось открыть XML файл 127.0.0.1\public\myApp\myApp.exe.config, ошибка: -2147024891

судя по всему, по доступу, хотя непонятно с чего...
в общем, меня устроило бы и msiexec /i... даже лучше... но не получается передать в параметрах сетевой путь... почему-то он не воспринимается...
Re[3]: WIX не срабатывает XmlFile при сетевой установке
От: bnk СССР http://unmanagedvisio.com/
Дата: 06.03.11 07:24
Оценка:
Здравствуйте, m-Dima, Вы писали:

MD>

MD>ExecXmlFile: Error 0x80070005: failed to load XML file: 127.0.0.1\public\myApp\myApp.exe.config
MD>MSI (s) (D0!9C) [12:18:06:208]: Продукт: Apollo.Net -- Ошибка 25531. Не удалось открыть XML файл 127.0.0.1\public\myApp\myApp.exe.config, ошибка: -2147024891

MD>судя по всему, по доступу, хотя непонятно с чего...
MD>в общем, меня устроило бы и msiexec /i... даже лучше... но не получается передать в параметрах сетевой путь... почему-то он не воспринимается...

Похоже прав на запись нету.
Дело в том что Windows Installer (MSI) выполняет установку не из-под текущего пользователя, а из под учетной записи SYSTEM (т.е. от имени текущего компьютера, а не текущего пользователя. А у SYSTEM обычно есть права только на текущий компьютер. Если компьютер который производит установку, входит в домен, можно попробовать разрулить это два ему права на запись в ту папку куда производится установка.

Но вообще обычно с одного компьютера на другой программы не ставят. То есть, MSI не заточен под такой сценарий.
Кстати, зачем тебе это вообще?
Re[4]: WIX не срабатывает XmlFile при сетевой установке
От: m-Dima Россия  
Дата: 06.03.11 09:04
Оценка:
Здравствуйте, bnk, Вы писали:

bnk>Здравствуйте, m-Dima, Вы писали:


MD>>

MD>>ExecXmlFile: Error 0x80070005: failed to load XML file: 127.0.0.1\public\myApp\myApp.exe.config
MD>>MSI (s) (D0!9C) [12:18:06:208]: Продукт: Apollo.Net -- Ошибка 25531. Не удалось открыть XML файл 127.0.0.1\public\myApp\myApp.exe.config, ошибка: -2147024891

MD>>судя по всему, по доступу, хотя непонятно с чего...
MD>>в общем, меня устроило бы и msiexec /i... даже лучше... но не получается передать в параметрах сетевой путь... почему-то он не воспринимается...

bnk>Похоже прав на запись нету.

bnk>Дело в том что Windows Installer (MSI) выполняет установку не из-под текущего пользователя, а из под учетной записи SYSTEM (т.е. от имени текущего компьютера, а не текущего пользователя. А у SYSTEM обычно есть права только на текущий компьютер. Если компьютер который производит установку, входит в домен, можно попробовать разрулить это два ему права на запись в ту папку куда производится установка.

bnk>Но вообще обычно с одного компьютера на другой программы не ставят. То есть, MSI не заточен под такой сценарий.

bnk>Кстати, зачем тебе это вообще?
ну, в общем, уже незачем...
была попытка реализовать установку на клиента от имени администратора сервера, но админы сказали, что так не надо — будут запускать от имени клиента...
с помощью microsoft system center manager
так что вопрос закрыт, спасибо за разъяснение...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.