InstallScript Data-Casing
Нижняя линия
Я унаследовал крупный установщик InstallShield InstallScript, и в работе через его InstallScript (*.rul
) исходные файлы, я замечаю, что регистр типов данных переменных и параметров различен - для того, что кажется одинаковыми типами данных. Например, я вижу переменные и параметры типа number
а также NUMBER
, string
а также STRING
и так далее.
Переключение между прописными и строчными буквами в моих экспериментах, похоже, не имело значения; проект установщика компилируется в любом случае; но я не уверен, что в этой истории может быть что-то еще.
Имеет ли значение тип данных InstallScript? Если да, то когда и как это имеет значение?
Дальнейший контекст
Исходя из.NET, C# и C++/CLI, я понимаю, что long
а также Int64
сопоставимы в C#, тогда как long
а также Int32
сопоставимы в C++ / CLI; но последний в каждой паре отличается, даже если только в той степени, в которой это требует using
директива для System
Пространство имен. Я хотел бы аналогичным образом GROK типов в InstallScript.
2 ответа
Ответы бывают иногда и это зависит.
В разделе " Типы данных и предопределенные структуры " в справочнике по языку InstallScript изложены правила размещения типов данных и указано, "что некоторые типы данных можно вводить как строчными, так и прописными буквами".
Согласно справочнику по языку, более 2/3 (13 из 18) типов данных InstallScript не чувствительны к регистру в той степени, в которой они могут быть прописными или строчными.
Интересно, что эти типы не могут быть в смешанном регистре (т. Е. В комбинации прописных и строчных букв). Например, String
(против STRING
или же string
) выдает следующую ошибку во время компиляции:
Description Error Code
---------------------------------------- ----------
'String': expected typedef (struct) name C8017
Кроме того, согласно справочнику по языку, здесь представлены регистрозависимые (чуть менее 1/3 (5 из 18)) типы данных, которые могут быть только заглавными:
BOOL
HWND
LIST
LPSTR
LPWSTR
Ввод этих типов данных в нижнем регистре приводит к ошибкам во время компиляции, как показано ниже:
Description Error Code
---------------------------------------- ----------
'bool': expected typedef (struct) name C8017
Кроме того, предпочтительнее использовать прописные или строчные буквы, где это разрешено.
Позвольте мне добавить это как отдельный ответ, чтобы перечислить некоторые хорошие источники информации.
Проверьте наличие распространенных ошибок и ошибок во время выполнения Installshield здесь: http://consumer.installshield.com/common.asp?source=all. Как я уже сказал, с Basic MSI все в порядке, следует избегать только MSI Installscript.
Сообщество Installshield тоже хорошо: http://community.installshield.com/. Как и установщик Stefan Kruger (MSI MVP) с сообществом на http://forum.installsite.org/.