Проблема не в длине имени, а в том, что имя DATABASE используется как внутреннее свойство MSI, содержащее полное имя файла установочного файла 1 .
Если вы связываете свое поле редактирования с этим свойством, значение этого свойства будет перезаписано любым содержимым поля редактирования.
MSI это не нравится. К сожалению, я не смог найти места, где задокументировано, что имя DATABASE зарезервировано (встроенные свойства MSI задокументированы здесь ). Так что я бы не сказал, что это ошибка в MSI, но плохая юзабилити документации / разработчика (как, к сожалению, слишком часто бывает в случае установщика Windows)
В вашем лог-файле вы найдете следующие записи:
MSI (c) (64: 1C) [19: 30: 12: 339]: ИЗМЕНЕНИЕ НЕДВИЖИМОСТИ: Изменение свойства DATABASE. Его текущее значение - «d: \ ... mysetup.msi». Его новое значение: «ProgressNotes».
И позже, когда установщик зависает:
MSI (c) (64:68) [19: 30: 41: 701]: примечание: 1: 1314 2: ProgressNotes
Здесь, вероятно, должен отображаться полный путь к вашему MSI-файлу ...
Решение: используйте любое другое имя, которое не зарезервировано.
1 Это легко увидеть, если установить для Edit1Property значение «DBProperty» и для параметра Edit1Value значение [DATABASE] (без одинарных кавычек).