Объясняю ситуацию: решил сделать собственный пак для интеграции .Net Framework в дистрибутив Винды (1.1SP1+2.0 для W2K и 1.1SP1+3.0 для WXP/W2K3), однако не для бесключевой инсталляции, а для интеграции в апплет "Установка и удаление компонентов Windows", с последующей установкой из него и расположением инсталлятора на установочном диске, потому как мне так кажется удобнее...
Сами пакеты взял уже в перепакованном виде (с интеграцией хот-фиксов и русского языкового пакета) у Пети Васе4кина с ОсЗоны (только в паке фрэймворка 1.1 изменил конфигурационный файл SFX и соответственно отредактировал/добавил cmd-файлы, чтобы оный пак понимал ключ -ai); далее запаковал EXE'шники инсталляторов в CAB'ы и добавил в файлы установки Винды следующее (это для винтукея; для ХР/2К3 DotNet2.* соответственно заменяется везде на DotNet3.*):
В sysoc.inf
DotNet11=ocgen.dll,OcEntry,DotNet11.inf,,7 DotNet2=ocgen.dll,OcEntry,DotNet2.inf,,7
В dosnet.inf
d1,DotNet11.cab d1,DotNet11.inf d1,DotNet2.cab d1,DotNet2.inf
И в txtsetup.sif
DotNet11.cab = 1,,,,,,_x,,0,0 DotNet11.inf = 1,,,,,,,20,0,0 DotNet2.cab = 1,,,,,,_x,,3,3 DotNet2.inf = 1,,,,,,,20,0,0
[Version] Signature = "$Windows NT$" Class = NoDriver ClassGuid = {8ECC055D-047F-11D1-A537-0000F8753ED1} [SourceDisksNames] 1 = ".NET Framework v1.1 SP1 Multilanguage Component", DotNet11.cab,, "I386" [SourceDisksFiles] DotNet11.exe = 1 [DestinationDirs] DefaultDestDir = 30, Temp DotNet11.TemporaryCopy = 30, Temp [DefaultInstall] CopyFiles = DotNet11.TemporaryCopy AddReg = DotNet11.RunInstall RunPostSetupCommands=Cmd.DelFiles [Optional Components] DotNet11 [DotNet11] OptionDesc = "Компонент .NET Framework v1.1 SP1" Tip = "Динамическая среда выполнения .NET" IconIndex = *, fp40ext.dll, 102 SizeApproximation = 196000000 CopyFiles = DotNet11.TemporaryCopy Run = DotNet11.RunInstallEx Uninstall = DotNet11.Uninstall [DotNet11.Uninstall] Run = DotNet11.RunUninstallEx [DotNet11.TemporaryCopy] DotNet11.exe [Cmd.DelFiles] rundll32.exe advpack,DelNodeRunDLL32 "%30%\Temp\DotNet11.exe" [DotNet11.RunInstall] HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Run Setup Installation ...",,"%30%\Temp\DotNet11.exe -ai" [DotNet11.RunUninstall] HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Run Setup Uninstallation ...",,"%11%\MsiExec.exe /X{CB2F7EDD-9D1F-43C1-90FC-4F52EAE172A1} /qb-!" HKLM,Software\Microsoft\Windows\CurrentVersion\RunOnce\Setup,"Run Setup Uninstallation ...",,"%11%\MsiExec.exe /X{2BB372D9-52B4-410A-BC1A-FEAB63181EEF} /qb-!" [DotNet11.RunInstallEx] Commandline="%30%\Temp\DotNet11.exe -ai" WorkingDir = 30, Temp TickCount=500 [DotNet11.RunUninstallEx] Commandline="%11%\MsiExec.exe /X{CB2F7EDD-9D1F-43C1-90FC-4F52EAE172A1} /qb-!" Commandline="%11%\MsiExec.exe /X{2BB372D9-52B4-410A-BC1A-FEAB63181EEF} /qb-!" WorkingDir = 11 TickCount=500
В общем, основную часть задачи я выполнил - компонент в оснастке "Установка компонентов Windows" появился, устанавливается при добавлении через оный апплет вполне корректно, а вот с удалением неувязочка - не получается оно оттуда (точнее, делает вид, что удаляет, но при этом файлы остаются на месте, и в самой "Установке и удалении программ" все также видны фрэймворк с его хот-фиксами и языковым пакетом; при нажатии кнопки деинсталляции в "Установке и удалении" все деинсталлируется вполне корректно)...
Собственно, вопрос - где ошибка (про гены не отвечать, я и сам знаю )?..
Ну и уж до кучи - правильно ли я прописал удаление установочного пакета после инсталляции (просто в первых версиях про это забыл и добавил только что, еще не успел проверить)?..
Проблема еще осножняется тем, что сколько я не рыл MSDN и вообще Инет, _полной_ документации по скриптам на базе inf-файлов я нигде так и не нашел - все какие-то "куски" разной степени подробности, типа, как угадал, так и сделал...
Дядя Илья ... если есть необходимость могу подлечить MSDN от декабря сего года (благо он ощутимо похудел) ... сам не рыл по этому поводу.
А по теме ... не пробовал смотреть, что происходит при нажатии на кнопочку деинсталировать ??? (Ну и ессно сравнить с тем, что происходит у тебя)
Был бы премного обязан (как обычно )...
Пытаюсь уже, только вот понимаю, увы, мало (хотя все очень "похоже на правду"); сейчас занялся анализом некоторых файлов, включенных в sysoc.inf, вроде accessor.inf и games.inf...
- Ситчик веселенький есть?..
- Приезжайте, обхохочетесь!..
Насколько я понимаю, там должен вызываться со страшными ключами некий hta файлик
Отправить комментарий