WiX MSI и EXE как один EXE - PullRequest
       6

WiX MSI и EXE как один EXE

0 голосов
/ 26 июня 2011

У меня есть WiX 3.0 MSI файл, который запускается в конце установки устанавливаемого приложения, так как это приложение выполняется как настраиваемое действие (и использует переданный сеанс установщиком для некоторых вещей, таких как написание логов ..).

Мне нужно, чтобы эта установка выполнялась с повышенными разрешениями, и поэтому я создал «начальный загрузчик», который запускается от имени администратора и запускает этот файл MSI, а также передает ему путь к файлу журнала.

Я ищу способ упаковать этот MSI и EXE в один EXE для распространения. Я предпочитаю делать это как часть моего проекта Visual Studio. Является ли это возможным? Если да, то как?

Ответы [ 2 ]

1 голос
/ 26 июня 2011

Вы можете встроить его в пользовательское действие, а затем извлечь его и сохранить на диске во время выполнения.

Для получения дополнительной информации см. Статью Вставьте любой двоичный файл вСборка C # и извлечение ее во время выполнения .

0 голосов
/ 27 июня 2011

Существует множество инструментов для создания самораспаковывающихся исполняемых файлов, и Википедия перечисляет несколько популярных .В конечном итоге мы использовали WinRAR в шаге после сборки в MSBuild для этой задачи.

<Target Name="AfterBuild">
    <GenerateBootstrapper
          ApplicationFile="$(OutputName).msi"
          ApplicationName="$(ProductName)"
          BootstrapperItems="@(BootstrapperFile)"
          OutputPath="$(OutputPath)"
          ComponentsLocation="Relative"
          CopyComponents="true"
          Culture="en"
          Path="$(ProductRoot)\Deployment"/>

    <ConvertToAbsolutePath Paths="$(IconFile)">
        <Output TaskParameter="AbsolutePaths" PropertyName="IconFile"/>
    </ConvertToAbsolutePath>

    <ConvertToAbsolutePath Paths="$(BannerFile)">
        <Output TaskParameter="AbsolutePaths" PropertyName="BannerFile"/>
    </ConvertToAbsolutePath>

    <!--  a      Adds files to archive -->
    <!--  -m     Sets compression level (0-store...3-default...5-maximal) -->
    <!--  -sfx   Sets self-extracting mode -->
    <!--  -ep1   Exclude base directory from included file paths -->
    <!--  -r     Add files recursively -->
    <!--  -iadm  Request administrator rights -->
    <!--  -z     Specify sfx configuration file -->
    <!--  -iicon<icon.ico>  Specify icon to use -->
    <!--  -iimg<banner.bmp>  Specify splash banner to use -->
    <Exec Command='$(ProductRoot)\..\buildTools\WinRAR\winrar.exe a -m3 -sfx -ep1 -r -iadm -iicon$(IconFile) -iimg$(BannerFile) -zsfx_config.txt $(OutputPath)\$(OutputSetupName) $(TargetPath) $(OutputPath)\setup.exe "$(BootstrapperDependency)"'/>
</Target>

В WiX 3.6, Запись должнабыть в состоянии справиться с этой задачей, но я еще не экспериментировал с ней.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...