Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];

Вниз

InnoSetup настроить установку по разным путям?   Найти похожие ветки 

 
Добежал   (2008-12-19 17:35) [0]

Как в IS сделать, чтобы некоторые файлы ставились по пути {app} или по пути "Мои документы\[NAME]" в зависимости от того на какой операционной системе запущено приложение (win9x или w2k+ соответственно)?


 
Добежал   (2008-12-19 17:37) [1]


> на какой операционной системе запущено приложение


на какой системе ставится приложение.


 
Медвежонок Пятачок ©   (2008-12-19 17:57) [2]

например завести свои переменные вместо {app}


 
Добежал   (2008-12-19 18:08) [3]

а как в Inno наиболее просто определить версию системы? Может кто делал уже...

и что, в пути можно втупую вот подставлять переменные?

Типа:

[Files]
Source: "[blabla]"; DestDir: sMyPath;

[Code]
var
 sMyPath: Boolean;
...


так разве можно?


 
Eraser ©   (2008-12-19 18:09) [4]

> [0] Добежал   (19.12.08 17:35)

добрый совет: откажитесь от InnoSetup в пользу MSI пока не поздно. лучше это сделать сразу, чем потом переделывать.


 
Медвежонок Пятачок ©   (2008-12-19 18:10) [5]

ну переменным же можно присваивать значения. например в CurStepChanged


 
Пробегал2....   (2008-12-20 16:08) [6]

Eraser ©   (19.12.08 18:09) [4]
добрый совет: откажитесь от InnoSetup в пользу MSI пока не поздно


аргументы?

Медвежонок Пятачок ©   (19.12.08 18:10) [5]
ну переменным же можно присваивать значения. например в CurStepChanged


понятно. Вопрос в другом:

Добежал   (19.12.08 18:08) [3]
Source: "[blabla]"; DestDir: sMyPath;


разве так можно указывать пути через переменные?!

И как в коде определить NT это или win9x?


 
jack128_   (2008-12-20 16:22) [7]


> добрый совет: откажитесь от InnoSetup в пользу MSI пока
> не поздно. лучше это сделать сразу, чем потом переделывать.
>

на каком основании ты считаешь,ч то совет "добрый"  ??  


> и что, в пути можно втупую вот подставлять переменные?
на счет переменных - не помню, но вызов функции - точно можно...


 
Eraser ©   (2008-12-20 16:24) [8]

> [6] Пробегал2....   (20.12.08 16:08)


> аргументы?


> на каком основании ты считаешь,ч то совет "добрый"  ??  

потому что на MSI переделывать прийдется все равно.
допустим, возникнет необходимость удаленно распространять ПО в домене, что делать будете. да много еще другово есть в MSI, чего нет у других.
мне тоже InnoSetup больше нравился, но пришлось отказаться.


 
Пробегал2....   (2008-12-20 16:41) [9]

Eraser ©   (20.12.08 16:24) [8]
допустим, возникнет необходимость удаленно распространять ПО в домене


понятно

Eraser ©   (20.12.08 16:24) [8]
да много еще другово есть в MSI


что еще есть?


 
Eraser ©   (2008-12-20 16:47) [10]

> [9] Пробегал2....   (20.12.08 16:41)

MSI API.. там мноого чего полезного и нужного есть. и все это можно делать из сторонних программ с инсталлятором.
в общем дело хозяйское, я ничего не навязываю, но не говорите потом, что я не предупреждал )))


 
Пробегал2....   (2008-12-20 18:36) [11]

Eraser ©   (20.12.08 16:47) [10]
там мноого чего полезного


например?


 
Пробегал2....   (2008-12-21 16:24) [12]

jack128_   (20.12.08 16:22) [7]
на счет переменных - не помню, но вызов функции - точно можно...


ну тогда остается вопрос как определить версию ОС, win9x или w2k+. Может есть встроенные какие функции?


 
jack128_   (2008-12-21 18:04) [13]


> Может есть встроенные какие функции?

100% - есть.

Собственно я на 90% уверен, что есть и встроенная переменная, типа {pf} для твоего случая...  Почитай хелп, там всё написано...


 
Пробегал2....   (2008-12-21 18:16) [14]

jack128_   (21.12.08 18:04) [13]
Собственно я на 90% уверен, что есть и встроенная переменная, типа {pf} для твоего случая...  


ну переменная для моего случая вряд ли есть. А насчет хелпа - читаю, такого не вижу...


 
blackman ©   (2008-12-21 18:39) [15]

Напиши свой инсталлятор
http://articles.org.ru/cn/?c=120
все очень просто.


 
tesseract ©   (2008-12-21 19:03) [16]


> добрый совет: откажитесь от InnoSetup в пользу MSI пока
> не поздно. лучше это сделать сразу, чем потом переделывать.
>


innosetup    намного мощнее  и в разы быстрее ставиться.


> ну переменная для моего случая вряд ли есть. А насчет хелпа
> - читаю, такого не вижу...


{code:varname}  где  varname - имя функции. Завтра смогу скинуть код, если сам не разберешься к тому времени.


 
jack128_   (2008-12-21 19:22) [17]


> ну тогда остается вопрос как определить версию ОС, win9x
> или w2k+.

> А насчет хелпа - читаю, такого не вижу...

Не верю я что читаешь хелп. Просто не верю.  Не найти нужную те функцию в inno"вском хелпе может только слепой.


 
Eraser ©   (2008-12-21 20:45) [18]

> [16] tesseract ©   (21.12.08 19:03)


> innosetup    намного мощнее  

не соглашусь.

> в разы быстрее ставиться

соглашусь.

повторю: мне самому Inno больше нравится, одно время его использовал. но MS вынуждает использовать их продукт.


 
Eraser ©   (2008-12-21 20:46) [19]

не удивлюсь, что в новом виндовсе вообще запретят остальные инсталляторы или если не запретят, то сделают множество припятствий для их использования.


 
blackman ©   (2008-12-21 20:49) [20]

но MS вынуждает использовать их продукт
Как он это делает? Не смеши.


 
DVM ©   (2008-12-21 21:34) [21]


> blackman ©  


> Как он это делает? Не смеши.

Когда в домене 5000 машин и есть приложение с инсталлятором не в MSI, которое надо в течение пары дней установить на все машины домена становится как то не до смеха. MS IntelliMirror поддерживает ТОЛЬКО MSI, что неудивительно.


 
DVM ©   (2008-12-21 21:40) [22]

Какими бы преимуществами не обладал InnoSetup, с MSI ему не тягаться, потому как в следующей версии Windows MS может запросто прикрыть лавочку всем отличным от MSI инсталляторов.


 
бывалый   (2008-12-22 10:23) [23]

2пробегал

из справки инны

GetWindowsVersion
Prototype:
function GetWindowsVersion: Cardinal;

Description:
Returns the version number of Windows packed into a single integer. The upper 8 bits specify the major version; the following 8 bits specify the minor version; the lower 16 bits specify the build number. For example, this function will return $05000893 on Windows 2000, which is version 5.0.2195.

To retrieve just the major version number, use: "GetWindowsVersion shr 24". To retrieve just the minor version number, use: "(GetWindowsVersion shr 16) and $FF". To retrieve just the build number, use: "GetWindowsVersion and $FFFF".

See also:
GetWindowsVersionEx
UsingWinNT


 
Добежал   (2008-12-23 12:19) [24]


> потому как в следующей версии Windows MS может запросто
> прикрыть лавочку всем отличным от MSI инсталляторов.


в следующей версии Windows MS может запросто прикрыть лавочку всем отличным от MS программам. Или хотя бы всем программам, скомпилированным на не MS студии.
Ну бред же, а.


 
Медвежонок Пятачок ©   (2008-12-23 12:38) [25]

если бы сам инсталлер уже был бы у всех виндовых пользователей, то можно было бы и переходить на msi.

я например использую одну стороннюю библиотеку, которой требуется vs рантайм библиотеки. на старых системах их нет. автор либы предоставляет редистрибут пакет, все чотко.
но он собран на msi, а его у юзеров тоже часто нет.

и приплыли. качай и ставь инсталлер, потом запускай установку рантайм библиотек, затем уже ставь свой продукт.


 
DVM ©   (2008-12-23 22:03) [26]


> Добежал   (23.12.08 12:19) [24]


> Ну бред же, а.

Нет, не бред. MS методично пытается навести порядок в системе установки и управлении установленными приложениями. И правильно делает ибо бардак, создаваемый кустарными инсталляторами превышает все допустимые пределы.
Не исключено, что единственным поддерживаемым инсталлятором в будущей версии Windows станет именно MSI. Другие инсталляторы возможно тоже будут работать, но, например, установка программ с помощью таких инсталляторов будет сопряжена с рядом трудностей, будет сопровождаться множеством тупых вопросов и установленные таким образом программы будут ограничены в возможностях. И это правильно! Наверняка, программа с кустарным инсталлятором никогда не получит лого "WindowsX совместимая" и т.д.


 
DVM ©   (2008-12-23 22:08) [27]


> Добежал   (23.12.08 12:19) [24]


> в следующей версии Windows MS может запросто прикрыть лавочку
> всем отличным от MS программам

И никто этому, хочу заметить, не помешает. Это, конечно, реально не сегодня, не завтра, а в какой-нибудь Windows 2015 такое вполне реально. И будут там работать только программы созданные под какой-нибудь .NET 5.0. И в общем то это даже благо, т.к. устранит бардак.


 
Eraser ©   (2008-12-23 22:10) [28]

если не ошибаюсь, уже сейчас в висте не возможно установить программу через кустарный инсталлятор, не имея прав админа. а вот через MSI вполне можно.


 
Eraser ©   (2008-12-23 22:11) [29]

> [27] DVM ©   (23.12.08 22:08)


> И будут там работать только программы созданные под какой-
> нибудь .NET 5.0. И в общем то это даже благо, т.к. устранит
> бардак.

Sun прийдется переписывать джаву на .net ;-)


 
Anatoly Podgoretsky ©   (2008-12-23 23:24) [30]

> Eraser  (23.12.2008 22:10:28)  [28]

При том без желания пользователя, он вообще лишнее звено.


 
Anatoly Podgoretsky ©   (2008-12-23 23:25) [31]

> Eraser  (23.12.2008 22:11:29)  [29]

Или уйти с арены.


 
Пробегал2....   (2008-12-24 01:13) [32]

DVM ©   (23.12.08 22:03) [26]
MS методично пытается навести порядок в системе установки и управлении установленными приложениями. И правильно делает ибо бардак, создаваемый кустарными инсталляторами превышает все допустимые пределы


еще больший бардак наносит работа всяких там "кустарных" программ. Очевидно же, что надо запретить запуск всех программ, написанных не microsoft. И вот тогда то будет порядок.

DVM ©   (23.12.08 22:03) [26]
Не исключено, что единственным поддерживаемым инсталлятором в будущей версии Windows станет именно MSI


бред. Не будет такого никогда.

Причем тут вообще MSI? Это обычный программный продукт. Просто MS меняет ПРАВИЛА установки, актуальный MSI соответственно полностью поддерживает актуальные правила установки. Любой программный продукт, который будет поддерживать эти правила - будет работать. Имхо, это очевидно.

DVM ©   (23.12.08 22:03) [26]
И это правильно!


это бред.

DVM ©   (23.12.08 22:03) [26]
Наверняка, программа с кустарным инсталлятором никогда не получит лого "WindowsX совместимая" и т.д.


а еще никогда не получит это лого программа, скомпилированная "кустарными" компиляторами. А то и того больше кустарными программистами.

Eraser ©   (23.12.08 22:10) [28]
если не ошибаюсь, уже сейчас в висте не возможно установить программу через кустарный инсталлятор, не имея прав админа. а вот через MSI вполне можно


бред. Если говорить про установку в Program Files, без прав админа этого не сможет сделать ни один инсталятор, запись в PF разрешена только админу. MSI не может поднять уровень доступа пользователя.


 
Eraser ©   (2008-12-24 03:02) [33]

> [32] Пробегал2....   (24.12.08 01:13)


> бред. Если говорить про установку в Program Files, без прав
> админа этого не сможет сделать ни один инсталятор, запись
> в PF разрешена только админу. MSI не может поднять уровень
> доступа пользователя.

его не нужно поднимать, т.к. есть виртуализация.


 
DVM ©   (2008-12-24 10:44) [34]


> Пробегал2....   (24.12.08 01:13) [32]


> еще больший бардак наносит работа всяких там "кустарных"
> программ.

Ты может не заметил, но уже в виста есть проблемы с написанными не по правилам MS программами. Причем многие из них вообще перестали работать. Любой самопальный драйвер ты тоже просто так не установишь. Да примеров масса. В Vista гайки подкрутили, но не закрутили окончательно, тем самым намекнув, что пора наводить порядок.


> DVM ©   (23.12.08 22:03) [26]
> И это правильно!
>
> это бред.

Еще раз для бестолковых - это правильно!


> DVM ©   (23.12.08 22:03) [26]
> Наверняка, программа с кустарным инсталлятором никогда не
> получит лого "WindowsX совместимая" и т.д.
>
> а еще никогда не получит это лого программа, скомпилированная
> "кустарными" компиляторами. А то и того больше кустарными
> программистами.

А так уже есть. Программа, написанная в Delphi версии ниже 2007 такого лого не получит, если для адаптации к Vista не прилагать специальных дополнительных усилий.


> Причем тут вообще MSI? Это обычный программный продукт.
> Просто MS меняет ПРАВИЛА установки, актуальный MSI соответственно
> полностью поддерживает актуальные правила установки. Любой
> программный продукт, который будет поддерживать эти правила
> - будет работать. Имхо, это очевидно.

А одним из правил будет предоставление инсталляционного пакета в виде файла в формате MSI.

MSI это не обычный программный продукт, Это и технология и формат файла и довольно тесно интегрированное в ОС начиная с Win2000 ПО.
Многие вещи невозможно сделать, не используя MSI. Как пример IntelliMirror я уже приводил.


> бред. Если говорить про установку в Program Files, без прав
> админа этого не сможет сделать ни один инсталятор, запись
> в PF разрешена только админу. MSI не может поднять уровень
> доступа пользователя.

Одной из составных частей Windows Installer является между прочим служба MSIServer запущенная от имени системы. Она может писать куда угодно. Ты не видел что происходит у пользователя при поврежденной установке скажем MSOffice? Запускается инсталлятор и восстанавливает установку. У обычного пользователя, не администратора! InnoSetup так может? Другой инсталлятор так может? НЕТ! И не надо ля ля тут!


 
Добежал   (2008-12-24 12:00) [35]


> его не нужно поднимать, т.к. есть виртуализация


о, уже второй раз слышу это слово. А можно поподробнее?


> Еще раз для бестолковых - это правильно!


еще раз для толковых - это бред!


> А так уже есть


ну и отлично. Будем ждать, когда MS запретит запускать на windows программы написанные не MS. Ты по ходу первый будешь кричать, что так правильно.
Или точнее будет так - программы не от MS поставить будет нельзя (хрен ли, ведь будет один MSI, который будет проверять подпись MS в программах) по дефолту. Нужно будет делать какой-нибудь джейлбрейк ;))))


>  InnoSetup так может? Другой инсталлятор так может? НЕТ!


а ты хочешь сказать, что так сделать принципиально нельзя? Что мешает InnoSetup ставить свой сервис. Но он этого не делает - потому что они молодцы и все понимают, какой это бред.


> Ты может не заметил, но уже в виста есть проблемы с написанными
> не по правилам MS программами


ты, кстати, наверное, тоже не заметил, но у Vista есть проблемы с продажами. Почему-то. И акции MS после выпуска Vista почему-то неуклонно ползут вниз. Странно даже.


 
DVM ©   (2008-12-24 12:17) [36]


> Добежал   (24.12.08 12:00) [35]


> Будем ждать, когда MS запретит запускать на windows программы
> написанные не MS.
> Ты по ходу первый будешь кричать, что так правильно.

Ты не переворачивай с ног на голову мои слова. Я такого не говорил. Речь идет лишь о инсталляторе, а не вообще о всех программах. Также я предположил, что возможно когда то в будущем в Win пропадет возможность запускать не NET приложения. Я нигде не говорил, что можно будет запускать программы написанные только MS. Вот это действительно бред!


> а ты хочешь сказать, что так сделать принципиально нельзя?
>  

Принципиально можно и OC свою написать. Конечно можно сделать и сервис и даже более того - есть инсталляторы, которые ставят в систему свои сервисы, но дело не только в этом. А в том, что все эти инсталляторы всегда будут находиться в ущемленном положении относительно MSI. Это особенно заметно становится при создании крупных приложений активно взаимодействующих с AD, IntelliMirror и прочими технологиями MS.


> ты, кстати, наверное, тоже не заметил, но у Vista есть проблемы
> с продажами

Эти проблемы имеют совсем другие корни.


> о, уже второй раз слышу это слово. А можно поподробнее?
>

Поподробнее есть на MSDN. Если коротко, то когда например, кривая программа пытается писать в Program Files не от имени администратора, то она не получает сразу по рукам, ей позволяют туда писать. Но пишет она не в настоящую папку а виртуальную. И при следующем запуске этой же программы в этой папке сохраненного после первого запуска не будет.


 
Добежал   (2008-12-24 12:51) [37]


> Ты не переворачивай с ног на голову мои слова. Я такого
> не говорил

я знаю ;) Блин, ну неужели ты не уловил иронии.

MSI - это обычная программа. Ничто не мешает кроме времени и денег сделать такую же, работающую по таким же принципам - вот и все. Тут не должен и я уверен не будет работать принцип magic-функций. Ничего такого сверх задокументированных протоколов MSI не использует. Вот и все. Есть правила игры, MSI естественно эти правила поддерживает. Ничто не мешает другим поддерживать эти правила игры.
Хотя, конечно, у MSI могут быть преимущества в виде того, что некоторые ее части могут быть встроены по-умолчанию, в Windows.

Но как показывает практика эти преимущества оборачиваются и недостатков в результате. Потому что невозможно изначально все предусмотреть. Встроишь в винду MSI, а потом выйдет MSI 2.0 и всем опять же придется качать какое-то обновление для того, чтобы иметь возможность установить программу.

И вообще, ответь мне на вопрос, пожалуйста. А какой программой делают setup для MSI?


> Эти проблемы имеют совсем другие корни.


ну причины многообразны, конечно. Но и эта тоже есть. Ко мне лично обращалась пару знакомых с посылами вроде "Купил ноутбук, как снести оттуда эту #$$#%& висту и поставить XP?!?!".
И те же самые люди приходят в магазин и говорят - дайте ноутбук с XP. И покупают ноутбук с XP. Производители отмечают повышенный спрос на ноутбуки  где виста есть.
Конечно, влияние косвенное. Но все таки голосование рублем имеет место быть.


 
Добежал   (2008-12-24 12:53) [38]


> И при следующем запуске этой же программы в этой папке сохраненного
> после первого запуска не будет.


не понял эту фразу :(


 
DVM ©   (2008-12-24 13:07) [39]


> не понял эту фразу :(

Программа пишет, все функции WinAPI возвращают успех. Программа видит записанные на диск данные может их изменять и работать с ними. Но после закрытия все что она писала испаряется вместе с процессом, т.к. реально она не писала в папку Program Files, а работала с ее иммитацией. То же самое с реестром, с ветвью HKLM. Если программа захочет туда писать - пиши пожалуйста, только изменения все в реальный реестр не попадут.


 
DVM ©   (2008-12-24 13:12) [40]


> А какой программой делают setup для MSI?

InstallShield, Wise Installation Studio, их вобщем то немало. Не исключено, что InnoSetup когда нибудь будет поддерживать тоже.



Страницы: 1 2 вся ветка

Форум: "Прочее";
Текущий архив: 2009.02.22;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.58 MB
Время: 0.006 c
1-1207887296
Fynjy84
2008-04-11 08:14
2009.02.22
Вызов в DLL функции основного приложения


4-1205755686
rosl
2008-03-17 15:08
2009.02.22
закрыть файл


3-1215423644
alles
2008-07-07 13:40
2009.02.22
Как работать с индексами таблицы dbf?


15-1230097799
Кое кто
2008-12-24 08:49
2009.02.22
Как играть в малые шахматы(6x6)?


15-1230106923
igan
2008-12-24 11:22
2009.02.22
Формат хранения времени в файле





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский