Я использую следующее определение, чтобы сделать мой сценарий установки гибким в соответствии со средой сборки.
<?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?