Сборка WiX x86 / x64 с использованием атрибута Platform - PullRequest
3 голосов
/ 30 марта 2012

Я использую следующее определение, чтобы сделать мой сценарий установки гибким в соответствии со средой сборки.

<?if $(var.Platform)=x64 ?>

<?define PlatformProgramFilesFolder = "ProgramFiles64Folder" ?>
<?define win64Flag = "yes"?>
<?define TargetConfigurationPath = "bin\x64\Release"?>

<?else ?>

<?define PlatformProgramFilesFolder = "ProgramFilesFolder" ?>
<?define win64Flag = "no"?>
<?define TargetConfigurationPath = "bin\x86\Release"?>
<?endif ?>

подробно Я имею в виду переменную win64Flag, которую я использую в каждом атрибуте Win64 компонентов.Я использую Платформу в атрибуте Пакеты "Платформа" тоже.Но чтобы вернуться к атрибуту Win64, я использую переменную следующим образом:

Win64="$(var.win64Flag)"

И я всегда получаю предупреждение о том, что использование этого оператора в атрибуте YesNoType недопустимо.

Я создаю этот материал, используя свечу с помощью этого вызова:

candle.exe -ext WixUtilExtension -dPlatform=x86 "Deployment\WiX Setup Project\SetupScript.wxs" -out "Deployment\TempBuildOutput\SetupScript x86.wixobj"

light.exe -ext WixUIExtension -ext WixUtilExtension "Deployment\TempBuildOutput\SetupScript x86.wixobj" -out "Deployment\TempBuildOutput\Installer_x86.msi"

В моем скрипте есть CustomAction, который автоматически запускает приложение, если установка завершена.Это прекрасно работает на сборках x64, но не на сборках x86.Вот почему я думаю, что может быть что-то не так с атрибутом Win64, или лучше, в том, как я его использую.

Но, по моему мнению, что-то должно быть правильно с этим кодом, потому что файлы установлены в соответствующую папку на x64 (Program Files) и x86 (Program Files (x86)).Но я спрашиваю себя, по какой причине мои приложения не запускаются после завершения установки.

Я работаю с Windows x64, может ли это быть причиной сбоя при запуске моих приложений автозапуска x86?

Есть ли способ устранить предупреждение о моем использовании атрибута Win64?

1 Ответ

2 голосов
/ 30 марта 2012

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

Недопустимое предупреждение об атрибуте генерируется Visual Studio, если вы скомпилируете свой проект в командной строке, вы не увидите предупреждение.XML-редактор Visual Studio выполняет автоматическую проверку XML-схемы, если он распознает схему вашего XML-документа.XML-схема Wix определяет допустимые значения атрибута Win64 либо yes, либо no.Visual Studio видит, что у вас нет одного из этих значений, и любезно сообщает, что вы не придерживаетесь определенной схемы.Wix, с другой стороны, сначала предварительно обрабатывает документ и заменяет ошибочное значение значением, которое вы определили в вашем включаемом файле, что делает его таким, что документ проходит проверку схемы.

Короче говоря, это предупреждение, скорее всего, нетпричина проблемы, которую вы видите.

...