Вероятно (никогда не пытался) возможно в WiX переопределить схему по умолчанию таблицы ListBox.Я знаю, что в InstallShield я просто захожу в прямой редактор и настраиваю его.WiX имеет шаблонную схему, которая используется для построения MSI, и вы можете использовать элемент Table для его переопределения.Или же это может просто дать вам сообщение об ошибке, в котором говорится, что вы определяете хорошо известную таблицу.
Однако я не уверен, будут ли какие-либо побочные эффекты в элементе управления ListBox, если вы превысите 64 символа.Я не вижу ничего в MSI SDK, в котором говорится, что разрешено, поэтому я думаю, что ваш пробег может отличаться.
Вот прием, который вам может понравиться.Это называется трюк диалога злых близнецов.Видите ли, в MSI есть ошибка, что элементы пользовательского интерфейса не обновляются очень хорошо, и этот трюк работает вокруг этого.Учтите это:
Диалог1 со списком ListBox, связанным со свойством TESTPROP, и значением Элементов One 1 и Два 2. Текстовая метка, отображающая [TESTPROP].
При запуске диалогового окна текстовая метка становится пустой после нажатиястрока в списке.Нажмите назад и далее, и неожиданно у него будет ожидаемый текст 1 и 2.
Теперь создайте клон этого диалогового окна (Dialog2) и поместите управляющее событие в список List of dialog1, которое говорит, что NewDialog Dialog2 условие = 1 ипоместите управляющее событие в Listbox диалогового окна 2, которое говорит, что условие NewDialog Dialog1 = 1
Теперь, когда вы запускаете его, экран обновляется (хотя с большим уродливым мерцанием).на самом деле это диалог злых близнецов, к которому переходят, чтобы данные обновлялись корректно.
Теперь для дополнительной пользы используйте ваши пользовательские действия, чтобы сделать что-то вроде этого
ListBox Item 1 Text C: \ Pro...Foo \ Bob value LISTBOXDIRPROP1 Элемент ListBox 2 Текст C: \ Pro ... Foo \ Ed value LISTBOXDIRPROP2
Свойство LISTBOXDIRPROP1 = C: \ Program Files \ Foo \ Bob Свойство LISTBOXDIRPROP2 = C: \ Program Files \Foo \ Ed
Затем установите текстовую метку на отображение [[TESTPROP]].Это говорит ему, чтобы получить значение значения свойства.Другими словами, TESTPRO = LISTBOXDIRPROP1 = C: \ Proggram Files \ Foo \ Bob
Этот трюк позволяет отображать строку, которая соответствует ограничению в 64 символа, но дает дополнительную информацию, когда пользователь выбирает ее.