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/.

Другие вопросы по тегам