TFS2008 - упаковка в MSI и файл cab для проекта установщика - PullRequest
0 голосов
/ 26 мая 2011

Я использую проект автоматической сборки и установки для создания MSI-файла в TFS 2008. Там мне нужно создать большую структуру папок, имеющую тысячи файлов и имеющую размер сотен МБ на компьютере пользователя, когда пользователь устанавливает файл MSI. Используя проект установщика TFS, если я добавляю отдельный файл, то мой файл installer.vdproj становится действительно большим и не поддерживаемым.

Так есть ли хороший способ обрабатывать эти файлы как единое целое? Сейчас я могу вспомнить механизм сжатия, который состоит из двух частей: -

  1. Как сжать файлы в файл cab (в MSBulid процесс может быть)? Кажется, команда makecab принимает только один файл за раз?

  2. Как изменить проект установщика так, чтобы cab-файл был частью MSI, а на компьютере пользователя несжатый файл cab для создания структуры папок? Могу ли я иметь файл cab, а также MSI (чтобы файл cab не был частью MSI)? остальные библиотеки находятся в MSI.

Спасибо

1 Ответ

1 голос
/ 26 мая 2011

Инструменты из Windows Install SDK, такие как MSIFILER.EXE , могут быть легко написаны для загрузки целого каталога файлов (например) в хранилище файлов MSI или CAB.

В вашем случае вы захотите настроить запуск сценария как событие после сборки , чтобы сначала вы строили MSI проекта установки, а затем сценарий изменял его.

Вы правы, что makecab.exe принимает только один файл за раз.Вы можете использовать оболочку FOR * оболочки CMD, чтобы добавлять их один за другим (например, FOR /F %%file IN ('dir /b /s') DO makecab %%file output.cab).Лично я предпочитаю инструменты архивирования, такие как 7-zip , которые также можно создавать из сценариев из командной строки .

Существует несколько способов добавления файлов в пакет установщика Windows(например, WiImport.vbs , MAKEMSI или вручную ) ...

.. но, возможно, вы не хотите этого делать,Я думаю, что может быть лучше просто включить архив (zip, cab, что угодно) и создать настраиваемое действие в проекте установки , чтобы извлечь его во время установки.

...