не могу скомпилировать правильную MSP с WIX - PullRequest
0 голосов
/ 26 августа 2018

Я пытаюсь скомпилировать msp, между пустой установкой и настройкой с 1 файлом: empty.wsx:

    <?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="71478e9e-07b8-4ccf-b46c-ac42d34cb439"
        Name="AproductClient"
        Language="1033"
        Version="4.0.0"
        Manufacturer="Aproduct(c)"
        UpgradeCode="71478e9e-07b8-4ccf-b46c-ac42d34cb439">
        <Package InstallerVersion="405" Compressed="yes" Platform="x64" SummaryCodepage="Windows-1252" Languages="1033" InstallScope="perMachine" />
        <MediaTemplate CompressionLevel="high" EmbedCab="no" MaximumUncompressedMediaSize="512" />
        <FeatureRef Id="Complete"/>
    </Product>

    <Fragment>
        <Feature Id="Complete" Title="Complete" Level="1">
        </Feature>
    </Fragment>

    <Fragment>
    </Fragment>


</Wix>

настройка с 1 файлом:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Product Id="71478e9e-07b8-4ccf-b46c-ac42d34cb439" Name="AproductClient" Language="1033" Version="4.0.0" Manufacturer="Aproduct(c)" UpgradeCode="71478e9e-07b8-4ccf-b46c-ac42d34cb439">
        <Package InstallerVersion="405" Compressed="yes" Platform="x64" SummaryCodepage="Windows-1252" Languages="1033" InstallScope="perMachine" />
        <MediaTemplate CompressionLevel="high" EmbedCab="no" MaximumUncompressedMediaSize="512" />
        <FeatureRef Id="Complete" />
    </Product>
    <Fragment>
        <Feature Id="Complete" Title="Complete" Level="1">
            <ComponentRef Id="Component_ProgramFiles64Folder.Aproduct.AproductPlus.bin" />
        </Feature>
    </Fragment>
    <Fragment>
        <DirectoryRef Id="ProgramFiles64Folder.Aproduct.AproductPlus.bin">
            <Component Id="Component_ProgramFiles64Folder.Aproduct.AproductPlus.bin" Guid="12df9f76-78a1-45fd-985d-9792ad0ebd85" Win64="yes">
                <File Id="_test.txt" Source="C:\tmp\patch1\test.txt" />
            </Component>
        </DirectoryRef>
    </Fragment>
    <Fragment>
        <Directory Id="TARGETDIR" Name="SourceDir">
            <Directory Id="ProgramFiles64Folder" Name="ProgramFiles64Folder">
                <Directory Id="ProgramFiles64Folder.Aproduct" Name="Aproduct">
                    <Directory Id="ProgramFiles64Folder.Aproduct.AproductPlus" Name="AproductPlus">
                        <Directory Id="ProgramFiles64Folder.Aproduct.AproductPlus.bin" Name="bin">
                            <Directory Id="ProgramFiles64Folder.Aproduct.AproductPlus.bin.plugins" Name="Plugins"></Directory>
                        </Directory>
                    </Directory>
                </Directory>
            </Directory>
        </Directory>
    </Fragment>
</Wix>

определение патча:

<?xml version="1.0" encoding="UTF-8"?>
<Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
    <Patch Manufacturer="Aproduct(c)" MoreInfoURL="http://www.Aproduct.com" DisplayName="MF 4.0.111.222 05" Description="2018.02.01.05: Manual number 5 of 2018.02 SP 1" Classification="Update" AllowRemoval="yes">
        <Media Id="5000" Cabinet="RTM.cab">
            <PatchBaseline Id="RTM" />
        </Media>
        <PatchFamilyRef Id="PatchFamily01" />
    </Patch>
    <Fragment>
        <PatchFamily Id="PatchFamily01" Version="18.2.1.122" Supersede="yes">
            <ComponentRef Id="Component_ProgramFiles64Folder.Aproduct.AproductPlus.bin" />
        </PatchFamily>
    </Fragment>
</Wix>

test.txt не установлен MSP. непонятно почему: Журнал сборки:

C:\sample\roman\manualfix>call candle.exe .\empty.wxs -out .\gen\empty.wixobj
Windows Installer XML Toolset Compiler version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.

empty.wxs

C:\sample\roman\manualfix>call light.exe .\gen\empty.wixobj -out gen\empty.msi
Windows Installer XML Toolset Linker version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.

C:\Users\rbelinsky\AppData\Local\Temp\olmptr31\empty.msi : warning LGHT1076 : ICE71: The Media table has no entries.

C:\sample\roman\manualfix>call candle.exe .\manualfix.wxs -out .\gen\manualfix.wixobj
Windows Installer XML Toolset Compiler version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.

manualfix.wxs

C:\sample\roman\manualfix>call light.exe .\gen\manualfix.wixobj -out gen\manualfix.msi
Windows Installer XML Toolset Linker version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.


C:\sample\roman\manualfix>torch.exe -p -xi gen\empty.wixpdb gen\manualfix.wixpdb -out gen\diff.wixmst
Windows Installer XML Toolset Transform Builder version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.


C:\sample\roman\manualfix>candle.exe manualfix-msp.wxs -out gen\manualfix-msp.wixobj
Windows Installer XML Toolset Compiler version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.

manualfix-msp.wxs

C:\sample\roman\manualfix>light.exe gen\manualfix-msp.wixobj -out gen\manualfix-msp.wixmsp
Windows Installer XML Toolset Linker version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.


C:\sample\roman\manualfix>pyro.exe gen\manualfix-msp.wixmsp -t RTM gen\diff.wixmst -out out\manualfix.msp
Windows Installer XML Toolset Patch Builder version 3.10.3.3007
Copyright (c) .NET Foundation and contributors. All rights reserved.

pyro.exe : warning PYRO1110 : Component 'Component_ProgramFiles64Folder.Dalet.DaletPlus.bin' was added to feature 'Complete' in the transform 'C:\sample\roman\manualfix\gen\diff.wixmst'. If you cannot guarantee that this feature will always be installed, you should consider adding new components to new top-level features to prevent prompts for source when installing this patch.

C:\sample\roman\manualfix>del /q/f install.log

C:\sample\roman\manualfix>msiexec /p out\manualfix.msp /qb /l*vx install.log

журнал установки: https://gist.github.com/kain64/9f58f8680dd49ad94d6db3831d65eb42 любая идея

1 Ответ

0 голосов
/ 27 августа 2018

Атака клонов : Did you put dummy GUIDs in place before posting online? Судя по всему, вы установили product codeидентичны upgrade code.О человечество!:-) Я сбит с толку, если это на самом деле скомпилировано.Честно говоря, я действительно не знаю, что произойдет, но это определенно неправильно.

Предложения : 1) Обеспечение продукта и обновлениякоды разные.2) Очистите систему от старых исправлений перед повторным тестированием или, что еще лучше, настройте виртуальную машину для тестирования.3) Обсудите с вашим менеджером точные требования к вашей настройке - вы должны работать с технологическими ограничениями (которые являются неудачными, неоспоримыми и сложными - и, позвольте мне добавить, не по моей вине), простодостаточно практического опыта, чтобы сказать это с уверенностью).


Предыдущие тестовые патчи : Взглянув на бревно, интересно, есть ли у вассделал много патчей, которые все еще присутствуют на вашем тестовом боксе.Используете ли вы чистый виртуальный для этого тестирования?Я думаю, вы должны это сделать. Как правило, все ваши собственные тесты развертывания должны выполняться чисто на виртуальных машинах.

Патчирование, механизм доставки : Важно понимать, чточто патч - это всего лишь механизм доставки для обновления, которое уже должно работать.Другими словами, вам нужно проверить, что незначительное или серьезное обновление, для которого вы создаете исправление, действительно работает, когда вы устанавливаете его как MSI, прежде чем пакет станет как MSP.Если это не так, то патч также никогда не будет работать.

Исправление : исправление является сложным и подвержено ошибкам. Основные обновления особенно неуклюжи и не рекомендуются - мне удалось заставить их работать, только когда удаление старой версии отложено до конца процесса установки. Незначительные обновления возможны только при тщательном планировании и управлении процессом выпуска. Я написал этот ответ ранее об ограничениях незначительных обновлений (рекомендуется прочитать - и, пожалуйста, прочитайте, не просматривайте это - это важно для вашего процесса и выпуска).

Код продукта, пакета и обновления : И вот еще один ответ: О различиях между кодами пакета, продукта и обновления (простопервая часть - чтобы понять, для чего нужен код обновления - проигнорируйте остальную часть ответа).

Файл справки Installshield : Я закончу прямой ссылкойв файл справки Installshield, так как содержимое очень хорошее. В этой таблице показано, что разделяет различные типы обновлений установщика Windows .Pay particular attention to the fact that for a minor upgrade you need to use the same file name for the MSI file for both releases! Я всегда натыкаюсь на это требование.Более важные детали, подобные этим, можно найти в связанном ответе на небольшие обновления.Пожалуйста, прочитайте это.

...