Wix Включить файл (.wxi) выдает исключение - PullRequest
4 голосов
/ 19 марта 2012

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

Вот мой включаемый файл Wix: properties.wxi

    <Include>

     <?define Language="1033"?>
     <?define Manufacturer="ABC Inc"?>
     <?define Name="TRIAL-MSI"?>
     <?define UpgradeCode="....GUID...."?>
     <?define Version="09.00.0021"?>
     <?define Comments="Contact: team@abc.com"?>
     <?define Description="TRIAL Application"?> 

     </Include>

И я вызываю его в своем коде следующим образом:

       <?xml version="1.0" encoding="UTF-8"?>
       <Wix xmlns="http://schemas.microsoft.com/wix/2006/wi">
        <?include properties.wxi ?> 

 <Product Id="*" 
                Name="${var.Name}"
                Language="${var.Language}" 
                Manufacturer="${var.Manufacturer}"
                UpgradeCode="${var.UpgradeCode}" 
                Version="${var.Version}" >

    <Package    Comments="${var.Contact}" 
                Description="${var.Description}" 
                InstallerVersion="200" 
                Keywords="Installer,MSI,Database" 
                Languages="${var.Language}" 
                Manufacturer="${var.Manufacturer}"
                Compressed="yes"
                Platform="x86" />

Я компилирую свой скрипт в командной строке:

         candle -arch x86 -I properties.wxi trial.wxs

Я получаю ошибки следующим образом:

ошибка CNDL0048: Недопустимое имя элемента документа «Включить».Исходный XML-файл установщика Windows должен использовать «Wix» в качестве имени элемента документа. Трассировка источника:

И я думаю, поскольку Candle не принял включаемый файл, он выдает исключение для:

errorCNDL0008: значение атрибута Product / @ Language, '$ {var.Language}', не является допустимым целочисленным значением.

Может кто-нибудь помочь мне с этим?Любая помощь с благодарностью.

Ответы [ 2 ]

6 голосов
/ 03 мая 2012

У меня была эта ошибка при переносе файлов wxs в wxi

Установка свойства Build Action файлов в Visual Studio с Compile до Content исправила его.

1 голос
/ 20 марта 2012

Флаг -I для свечи используется для указания каталога для поиска включаемых файлов:

использование: свечей [[?]] [-Nologo] [-out outputFile] sourceFile[sourceFile ...] [@responseFile]

-Я добавляю, чтобы включить путь поиска

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

candle -arch x86 trial.wxs

ОБНОВЛЕНИЕ:

Переменные Wix вставляются с использованием $(var.VARIABLENAME).Все ваши переменные заключены в фигурные скобки вместо скобок.

...