Исключение нулевого указателя - это индикатор того, что вы используете объект, не инициализируя его.
Например, ниже - класс ученика, который будет использовать его в нашем коде.
public class Student {
private int id;
public int getId() {
return this.id;
}
public setId(int newId) {
this.id = newId;
}
}
Приведенный ниже код дает вам исключение с нулевым указателем.
public class School {
Student obj_Student;
public School() {
try {
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Поскольку вы используете Obj_Student
, но вы забыли инициализировать его, как в правильном коде, показанном ниже:
public class School {
Student obj_Student;
public School() {
try {
obj_Student = new Student();
obj_Student.setId(12);
obj_Student.getId();
}
catch(Exception e) {
System.out.println("Null Pointer ");
}
}
}
Нет, нет никакого способа сделать это, все еще сохраняя функциональность Ваши клиенты 'неявно' просят. Единственное 'обертывание' в MSI, который можно сделать, должно извлечь его на установке и запустить установщик InnoSetup с временного местоположения, где Вы извлекли к. MSI является существенно различным способом работать: InnoSetup (& NSIS & большинство других установщиков), проявляют центральный кодом подход: Вы 'программируете' 'шаги' для установки данных. MSI является базой данных и проявляет 'информационно-центрический' подход: Вы указываете на то, какие файлы должны быть установлены, и MSI 'время выполнения' делает остальных. Это дает Вам управление версиями и точное управление того, что идет где.
Короче говоря, чтобы дать Вашим клиентам, что они хотят (т.е. простота развертывания, которое MSI приносит с AD), Вам будет нужен 'надлежащий' MSI. Удача с этим, это - сильная боль, по моему скромному мнению. Но это действительно дает хорошие результаты, как только Вы осваиваете MSI & WiX.
В ответ на Ваше редактирование: да, что Вы описываете, предотвратит выполнение обновлений (кроме, удаляют/переустанавливают), и удаленная конфигурация, так как база данных MSI ничего не будет знать о содержании Вашего установщика.
Много пакетов установщика запустили MSI 'поддержка' таким образом, хотя: InstallShield сделал, например. Это - главная причина, я вывел их, потому что установщики, сделанные таким образом, бесполезны в целях MSI. Я не знаю, являются ли последние версии InstallShield лучшим, прошлым разом, когда я проверил, был 5 лет назад.
Его довольно легкое для создания набора обертки, который автоматически устанавливает INNOSETUPper от MSI. Для основной функциональности (установка/удаление) это достаточно. Большинство setuppers не реализует восстановление так или иначе.
создают сценарий silent.inf для Установки INNO (дополнительно)
, создают install.bat, который звонит
myinnosetup.exe / тихий/NOCANCEL/norestart / Компоненты = "xxx"
, можно использовать/verysilent
, можно загрузить настройки из silent.inf с/LOADINF =, "silent.inf"
создает файл настройки MSI, который звонит, install.bat (с параметрами при необходимости)
поставляет все 4 файла клиенту, и они могут развернуть Inno setupper с SMS или ActiveDirectory, и все счастливы:)
Я утверждал бы, что возможно сделать все, что Вы хотели бы с MSI перенесенную Установку Inno, но это совсем не тривиально, и использование, WiX мог бы сделать эту конкретную задачу более трудной. Короче говоря я действительно не рекомендовал бы это.
, Но если действительно требуется...
файлы MSI являются просто файлами базы данных с дополнительными инструкциями по сценарию и часто встраивают .cab файл, который содержит материал, который Вы на самом деле хотите установить.
, Если Вы используете Мудрый, Вы генерируете сценарии по умолчанию, к которым можно затем добавить условия Windows Installer и управлять событиями до более прекрасного градуса (Установка, восстановить, изменить, удаление) так, чтобы они назвали эквивалентные действия со сценарием установки Установки Inno, который должен был бы быть установлен в и сохранен во временной папке.
Выполнение так было бы в значительной степени эквивалентно поставке zip-файла, и вызов разархивировали к концу установки.
С таким AD подхода и Windows Installer дурачился бы, как будто имея дело с надлежащей установкой MSI, но как это не имеет место, они имели бы неприятные последствия для Вас в самом первом случае.
не идут этим путем.
И WiX превосходящий комплект инструментальных средств к InnoSetup, так или иначе, таким образом, время, которое Вы проведете на изучении и портировании, окупится лучшей поддержкой сотрудничества.
хотя последний комментарий выполним и осуществим, перемещение в MSI является лучшим способом обработать это.
почти все крупные организации предусматривают MSI только, существуют множества причин почему.
1) сначала простота развертывания, 2) более важного для некоторых, общительность приложения 3) сам исцеление
, установка inno и другие такие инструменты, не реализовывая Windows Installer просто не могут предложить общительность приложения теми же способами как установщик Windows.
необходимо понять, что установка Inno является программным обеспечением, разработанным для развертывания отдельного приложения.
Windows Installer является всей платформой для контакта с общительностью, пользовательским олицетворением, пользовательским повышением, сам исцеление, профиль пользователя договаривается.
Они два даже не удаленно близки в функциональности, inno установка в моем уме полностью и крайне путь от курса с точки зрения сравнения с установщиком Windows.
это может создать успешные установщики? да действительно ли это просто в использовании? да это создает хорошие единственные установщики? да действительно ли это - лучший выбор для предприятия? никакой
самые ранние инструменты, разработанные Microsoft ", Установщик SMS" был innosetup 10 лет назад. Вещи изменились решительно в мире установки, и установка inno просто не не отставала от темпа того изменения.
Мне нужно ввести значение custom в файле silent.inf (а не постоянное значение настройки inno), похоже, что LOADINF позволяет это.
Примечание: если вы используете makemsi, вы делаете это не обязательно включать летучую мышь, так как вы можете использовать $ WrapInstall.
Нет смысла смешивать технологии установки.
Если вы смешиваете, у вас первая проблема с деинсталляцией. без изменений вы получаете 2 деинсталлятора вашей программы.
В "Entwickler Magazin" есть статьи, начинающиеся с установщика Windows.
Установщик Windows должен быть единственной технологией для ваших установок. его будущее доказательство и его стабильность!