Установить Свойство Wix в расположение сборки TFS

Я пытался найти ответ на свой вопрос и не мог его найти; поэтому я помещу решение здесь. Я надеюсь, что это поможет другим.

Проблема:

Я хочу, чтобы мой проект Wix был встроен в процесс сборки TFS 2010. В рамках этого я хочу, чтобы расположение исходных файлов для моего Wix указывало на расположение сборки TFS. Например, я хочу:


быть:


TFSLOCATION - это свойство wix, в которое необходимо указать расположение сборки TFS. Это должно произойти во время процесса сборки, когда путь к месту сборки передается проекту Wix.

Решение:

Я прочитал следующую статью:

http://www.ageektrapped.com/blog/ setting-properties-for-wix-in-msbuild /

Вот что я сделал с моим файлом проекта Wix (wixproj):

Чтобы установить свойство wix из процесса TFS MSBuild, файлу проекта wix требуется два изменения:


    Debug
    3.5
    UNKNOWN
    {cae7e273-2de5-4a60-9c4f-9da5f094caf5}
    2.0
    N4S.MSO.BAM.Installer
    Package
    $(MSBuildExtensionsPath32)\Microsoft\WiX\v3.x\Wix.targets
    $(MSBuildExtensionsPath)\Microsoft\WiX\v3.x\Wix.targets
    SAK
    SAK
    SAK
    SAK
  
 
  bin\$(Configuration)\ 
  obj\$(Configuration)\
  LOCATION=$(SourceLocation)

В приведенном выше xml обратите внимание на следующие две строки:

UNKNOWN

LOCATION=$(SourceLocation)

Первая строка определяет свойство SourceLocation и устанавливает для него значение по умолчанию «UNKNOWN», если оно равно не установлен. Вторая строка определяет константу под названием «LOCATION» в конфигурации «Release». Значение этой константы устанавливается равным значению свойства SourceLocation.

Теперь вам необходимо внести следующие изменения в ваш файл Product.wxs (или любое другое имя вашего файла wxs).

  • Сначала определите свойство wix.

  • Теперь обновите элементы File.

Изменение шаблона сборки TFS 2010

  • Откройте шаблон сборки TFS 2010.
  • Найдите задачу «Запустить MSBuild for Project» .
  • Откройте свойства для этой задачи и перейдите к свойству CommandLineArguments.
  • Задайте для этого свойства значение:
String.Format("/p:SourceLocation={0}", BinariesDirectory)

Готово

Теперь у вас есть свойство wix, заполненное в процессе сборки TFS.

7
задан ansariwn 18 July 2011 в 14:34
поделиться