Создать папку в выводе WiX на пути сборки сборки - PullRequest
1 голос
/ 03 апреля 2012

У меня вопрос по WiX.Но сначала позвольте мне описать мою ситуацию: у меня есть решение VS2010 и я добавил проект WiX (Votive), чтобы выполнить настройку.Я строю эту установку на сервере сборки TFS.К сожалению, все мои файлы (* .dll, * .sql, * .msi, * .whither) слепо копируются в один и тот же путь вывода!Я добавил цель msbuild с Move-Task в мой файл Setup.csproj, чтобы переместить мои файлы msi, bat и sql в отдельную папку, но, к сожалению, это не работает в TFS-Build.

Вотпроблема (imho): то, что я делаю в Votive, - это этап к раннему.я могу создавать папки и перемещать файлы, но то, что я пишу в файле csproj, делается до того, как TFS случайным образом возьмет все двоичные файлы и поместит их в папку для отбрасывания.

Как я пытался решить:

  1. Я искал в файле wix2010.targets команду на перемещение или копирование, где . перемещено в build_drop, но я не смог его найти.
  2. Я посмотрел на шаблон процесса сборкино я понятия не имею о языке или синтаксисе.Есть что-то с этим делать?
  3. В определении Build в Build Defaults есть флажок «Эта сборка копирует выходные файлы в папку перетаскивания», где я должен добавить свое местоположение для перетаскивания.Есть ли что-то, что я могу изменить здесь?

Мой вопрос: Как я могу создавать подпапки с файлом установки WiX и перемещать в него определенные файлы в сборке TFS?

Надеюсь, выможет помочь!Заранее спасибо!

Ответы [ 2 ]

1 голос
/ 03 апреля 2012

Я не уверен, что следую вашему вопросу, но думаю, что вы жалуетесь на то, что все ваши DLL / EXE / et all и MSI заархивированы в одном каталоге. Да, мне это тоже не нравится.

Я занимаюсь созданием платформ решений, называемых приложениями, модулями слияния и настройкой. Затем я говорю TFS для сборки:

Релиз | заявка Релиз | Объединить модули (возможно, вам не нужно ничего строить) Релиз | Настройка

Это приводит к тому, что все мои DLL / EXE / Content архивируются в \ Application \ Release, все мои модули слияния архивируются в \ Merge Modules \ Release, а мой MSI архивируется в \ Setup \ Release

Это хорошо работает для меня.

1 голос
/ 03 апреля 2012

Если вам просто нужно переместить файлы, чтобы ваш установщик знал, где их взять, то альтернативный способ - добавить файл config.wxi в ваш установщик, который указывает на расположение исходных файлов. Вы можете прочитать больше об этом здесь . Хотя при таком подходе вам, возможно, придется изменить config.wxi во время компиляции установщика, чтобы указать новое расположение сборки или расположение удаления. Если вы знакомы с MSBuild, есть Задачи сборки Tranxition , которые помогут вам легко изменить файл WiX .wxi. Вы также можете написать свой собственный скрипт для этого, но в любом случае вам придется запускать свой скрипт или задачу сборки из определения сборки, которое запускает вашу сборку.

Если вы используете Team Build 2010 и хотите просто копировать файлы и папки во время процесса сборки, вам нужно изменить определение .xaml Team Build, которое запускает ваш процесс сборки. Эвальд Хофман написал отличную серию Настройка определений Team Build .

...