Объясняю ситуацию: решил сделать собственный пак для интеграции .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 файлик
Отправить комментарий