Можно ли локализовать лицензионное соглашение в WiX с помощью Файл .wxl?

Мой установщик, созданный с помощью WiX, локализован с помощью файлов .wxl. Это возможно в WiX для указания нескольких культур и light.exe будет вызываться несколько раз, создавая установщик для каждого языка (это доступно при сборке установщика из Visual Studio).

Весь рабочий файл, за исключением EULA. Он определен в файле .wxs через

<WixVariable Id='WixUILicenseRtf' Value='en.rtf' />

И я не знаю хорошего способа изменить это значение из файла локализации .wxl. Использование

<WixVariable Id='WixUILicenseRtf' Value='!(loc.EulaFile)' />
<String Id='EulaFile'>en.rtf</String>

не работает, sice .wxl файлы используются во время компоновки, и .wxs компилируется перед ними, поэтому компилятор не может найти ! (loc.EulaFile) . При поиске на форумах я нашел два обходных пути. Во-первых, это создание настраиваемого диалогового окна лицензий для каждого языка - кажется, оно работает, но это очень сложный способ и много раздувает исходный код. Второй способ - сбросить сборку Visual Studio / Votive и несколько раз вызвать light.exe, указав каждый раз новый файл лицензии с помощью ключа командной строки -d.

Есть ли способ решить эту проблему и использовать локализованные файлы EULA, чтобы проект может быть построен в VisualStudio + Voltive без необходимости копировать и вставлять много диалогов? Локализация установщиков - очень распространенная проблема, поэтому, возможно, существует какое-то решение, о котором я не знаю?

6
задан quetzalcoatl 28 February 2014 в 18:29
поделиться