Enjoy!
Silent .NET Maker synthesized 20100118 - W2K/XP/2K3 x86 Custom .NET+hotfixes+langpacks unattended installers/add-ons
#282
Posted 26 August 2009 - 03:10 PM
#283
Posted 26 August 2009 - 03:13 PM
Thx for your interest.
#284
Posted 30 August 2009 - 01:00 AM
http://www.msfn.org/board/tutorial-modify-...ll-t137477.html
this method can be applied on language pack for .NET 3.5, also.
#285
Posted 30 August 2009 - 06:04 PM
SCENARIO 1
Goals:
- to make a merged installer which contains .NET 1.1, 2.0 SP2, 3.0 SP2 and 3.5 SP1.
- to apply all regular hotfixes for the above.
- to avoid possible error messages in Event Viewer after Windows startup.
- optional: to avoid installation of Firefox ClickOnce addon
- number of "_SNMsynth.cmd" runs: 1
Solution:
1) Read "INSTRUCTIONS" section to know which files are required to start integration and download them as instructed.
2) Download the following files and put ALL of them together with files mentioned at point 1 inside a single folder:
.NET 1.1 Redistributable Package
NDP1.1sp1-KB867460-X86.exe
NDP1.1sp1-KB928366-X86.exe
.NET 3.5 SP1 Redistributable Package
NDP20SP2-KB958481-x86.exe
NDP30SP2-KB958483-x86.exe
NDP35SP1-KB958484-x86.exe
3) Edit "_SNMsynth.ini" as follows (without my comments inside the code):
PROCESS_DNF1=YES ; builds installer with .NET 1.1 PROCESS_DNF2= PROCESS_DNF35_DNF2=YES ; builds installer with .NET 2.0 SP2 portion of .NET 3.5 SP1 redistributable package PROCESS_DNF35_DNF3=YES ; builds installer with .NET 3.0 SP2 portion of .NET 3.5 SP1 redistributable package PROCESS_DNF35_DNF35=YES ; builds installer with .NET 3.5 SP1 PROCESS_DNF3_RGBRAST=YES PROCESS_DNF3_WINIMAGING=YES PROCESS_DNF3_MSXML6=YES PROCESS_DNF3_XMLPSSC=YES DNF_FF_ADDON=NO PROCESS_LNG_DNF1=NO PROCESS_LNG_DNF2=NO PROCESS_LNG_DNF35_DNF2=NO PROCESS_LNG_DNF35_DNF3=NO PROCESS_LNG_DNF35_DNF35=NO ADDON=YES MERGE_FRAMEWORKS=YES SILENT=YES COMPRESSION_RATIO=HIGHER
4) Run "_SNMsynth.cmd" and wait until the merged .NET installer is ready.
NOTE: Make sure you use RunOnceEx method with this scenario to avoid resulting Event Viewer errors at the end of installation. To use partial (!) SVCPACK method or to slipstream driver packs which require installation of .NET-dependent applications like ATI Catalyst Control Panel into Windows installation disc (more info @ DriverPacks.NET), please use Scenario 2 below.
SCENARIO 2
Goals:
- to make separate installers for i) .NET 1.1 and 2.0 SP2; ii) 3.0 SP2 and 3.5 SP1.
- to apply all regular hotfixes for the above.
- to avoid possible error messages in Event Viewer after drivers' installation and at Windows startup.
- optional: to avoid installation of Firefox ClickOnce addon
- number of "_SNMsynth.cmd" runs: 2
Solution:
1) same as at point 1 of Scenario 1
2) same as at point 2 of Scenario 1
3) For the first run, i.e. to make a separate merged installer for .NET 1.1 and .NET 2.0 SP2, edit "_SNMsynth.ini" as follows:
PROCESS_DNF1=YES ; builds installer with .NET 1.1 PROCESS_DNF2= PROCESS_DNF35_DNF2=YES ; builds installer with .NET 2.0 SP2 portion of .NET 3.0 SP2. PROCESS_DNF35_DNF3= PROCESS_DNF35_DNF35= PROCESS_DNF3_RGBRAST=YES PROCESS_DNF3_WINIMAGING=YES PROCESS_DNF3_MSXML6=YES PROCESS_DNF3_XMLPSSC=YES DNF_FF_ADDON=NO PROCESS_LNG_DNF1=NO PROCESS_LNG_DNF2=NO PROCESS_LNG_DNF35_DNF2=NO PROCESS_LNG_DNF35_DNF3=NO PROCESS_LNG_DNF35_DNF35=NO ADDON=YES MERGE_FRAMEWORKS=YES SILENT=YES COMPRESSION_RATIO=HIGHER
Note: Optionally you can download NetFx20SP2_x86.exe to build a merged installer for .NET 1.1 + 2.0 SP2. This is advantageous for those with weak systems, if you don't want to wait long until the silent maker extracts the 2.0 SP2 portion out of 3.5 SP1, as shown above. In this case you need to replace "PROCESS_DNF35_DNF2=YES" with "PROCESS_DNF2=YES".
4) Run "_SNMsynth.cmd" and wait until the merged .NET installer is ready.
5) For the second run, i.e. to make a separate merged installer for .NET 3.0 SP2 and .NET 3.5 SP1, edit "_SNMsynth.ini" as follows:
PROCESS_DNF1= PROCESS_DNF2= PROCESS_DNF35_DNF2= PROCESS_DNF35_DNF3=YES ; builds installer with .NET 3.0 SP2 PROCESS_DNF35_DNF35=YES ; builds installer with .NET 3.5 SP1 PROCESS_DNF3_RGBRAST=YES PROCESS_DNF3_WINIMAGING=YES PROCESS_DNF3_MSXML6=YES PROCESS_DNF3_XMLPSSC=YES DNF_FF_ADDON=NO PROCESS_LNG_DNF1=NO PROCESS_LNG_DNF2=NO PROCESS_LNG_DNF35_DNF2=NO PROCESS_LNG_DNF35_DNF3=NO PROCESS_LNG_DNF35_DNF35=NO ADDON=YES MERGE_FRAMEWORKS=YES SILENT=YES COMPRESSION_RATIO=HIGHER
6) Again, run "_SNMsynth.cmd" and wait until the merged .NET installer is ready.
NOTE: This scenario requires that you use SVCPACK method first to install the merged installer for .NET 1.1 + 2.0 SP2 at T-13/T-12, and only then apply RunOnceEx method to run the installer for .NET 3.0 SP2 + 3.5 SP1.
Applies to both scenarios:
1) If you want to add an uninstall button to .NET Framework Assistant 1.0 add-on for Firefox, download NDP35SP1-KB963707-x86.exe as well. Put "DNF_FF_ADDON=YES" if you want to install this optional fix for Firefox.
Caution: If you include Firefox ClickOnce addon ("DNF_FF_ADDON=YES"), before running the compiled .NET installer through either of SVCPACK or RunOnceEx methods, make sure that you edit respective .inf or .cmd files so that Firefox has priority in the list, i.e. is installed first! As recommended by strel, if you choose to install the Firefox addon, the script makes you apply KB963707 to build installers since the last version it's mandatory to use "DNF_FF_ADDON=YES" because KB963707 contains important fixes for the Firefox addon.
2) Since the LAST FOUR STRINGS are self-explanatory and do not have a direct impact on integration process, I just show my own edits here but you may change them to "NO" or "YES" as you like.
3) If you use OncePiece's post-SP3 update pack v2.7.0 for Windows XP, it already contains updated MSXML (KB954459 and KB960380-v2 which supersedes KB954459) and you install it before 3.0 during Windows setup, you don't need to include MSXML in 3.0 installer (PROCESS_DNF3_MSXML6=NO).
That's it for now! Don't know, may be other scenarios are also possible to derive out of strel's recommendations but I use the above two in particular with no side-effects yet.
Hope this helps!
This post has been edited by simurqq: 02 September 2009 - 09:36 AM
#286
Posted 31 August 2009 - 11:40 AM
Quote
; The following setting allows you to avoid installing .NET Assistant Firefox add-on implementing clickonce, .NET's software
; downloading/updating technollogy, into FF (in addition to IE). Some people dislikes this in FF for various reasons, see guide.
DNF_FF_ADDON=YES
I don't understand what the default option do, avoids the update showing in MU by adding some keys, or integrate KB963707 into snmsynth installation ?
This post has been edited by mooms: 31 August 2009 - 11:41 AM
#287
Posted 31 August 2009 - 11:46 AM
This setting is useful in case you just don't want to install the firefox add-on.
2 simurqq (see above) and everybody
In point 1 of your "applies to both scenarios" section there's something incorrect. It's not mandatory to set "DNF_FF_ADDON=YES" it's a choice. As explained in my previous lines.
This post has been edited by strel: 03 September 2009 - 07:30 PM
#289
Posted 03 September 2009 - 02:46 PM
I created a .NET package for W2K3 with this _SNMsynth.ini:
; SNMsynth.CMD PROCESS SETTINGS. PROCESS_DNF1= PROCESS_DNF2= PROCESS_DNF35_DNF2=YES PROCESS_DNF35_DNF3=YES PROCESS_DNF35_DNF35=YES PROCESS_DNF3_RGBRAST=YES PROCESS_DNF3_WINIMAGING=YES PROCESS_DNF3_MSXML6=YES PROCESS_DNF3_XMLPSSC=YES DNF_FF_ADDON=NO PROCESS_LNG_DNF1=NO PROCESS_LNG_DNF2=NO PROCESS_LNG_DNF35_DNF2=NO PROCESS_LNG_DNF35_DNF3=NO PROCESS_LNG_DNF35_DNF35=NO WIN2K3=YES ADDON=NO MERGE_FRAMEWORKS=YES SILENT= COMPRESSION_RATIO=HIGH
I had these hotfixes in the work folder:
NDP20SP2-KB958481-x86.exe
NDP30SP2-KB958483-x86.exe
NDP35SP1-KB958484-x86.exe
NDP35SP1-KB963707-x86.exe
It created a 45 MB installer. However, when I try to run it on a freshly installed W2k3 box, after I logged in, it fails almost immediately. This is the content of the NETFX20.log:
=== Verbose logging started: 9/3/2009 13:22:15 Build type: SHIP UNICODE 4.05.6001.00 Calling process: C:\WINDOWS\System32\msiexec.exe ===
MSI © (C8:D4) [13:22:15:619]: Resetting cached policy values
MSI © (C8:D4) [13:22:15:619]: Machine policy value 'Debug' is 0
MSI © (C8:D4) [13:22:15:619]: ******* RunEngine:
******* Product: C:\Temp\7ZipSfx.000\DNF20\Netfx20a_x86.msi
******* Action:
******* CommandLine: **********
MSI © (C8:D4) [13:22:15:619]: Client-side and UI is none or basic: Running entire install on the server.
MSI © (C8:D4) [13:22:15:619]: Grabbed execution mutex.
MSI © (C8:D4) [13:22:15:681]: Cloaking enabled.
MSI © (C8:D4) [13:22:15:681]: Attempting to enable all disabled privileges before calling Install on Server
MSI © (C8:D4) [13:22:15:697]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (E4:00) [13:22:15:744]: Running installation inside multi-package transaction C:\Temp\7ZipSfx.000\DNF20\Netfx20a_x86.msi
MSI (s) (E4:00) [13:22:15:744]: Grabbed execution mutex.
MSI (s) (E4:1C) [13:22:15:775]: Resetting cached policy values
MSI (s) (E4:1C) [13:22:15:775]: Machine policy value 'Debug' is 0
MSI (s) (E4:1C) [13:22:15:775]: ******* RunEngine:
******* Product: C:\Temp\7ZipSfx.000\DNF20\Netfx20a_x86.msi
******* Action:
******* CommandLine: **********
MSI (s) (E4:1C) [13:22:15:775]: Machine policy value 'DisableUserInstalls' is 0
MSI (s) (E4:1C) [13:22:16:291]: File will have security applied from OpCode.
MSI (s) (E4:1C) [13:22:16:291]: SOFTWARE RESTRICTION POLICY: Verifying package --> 'C:\Temp\7ZipSfx.000\DNF20\Netfx20a_x86.msi' against software restriction policy
MSI (s) (E4:1C) [13:22:16:291]: Note: 1: 2262 2: DigitalSignature 3: -2147287038
MSI (s) (E4:1C) [13:22:16:291]: SOFTWARE RESTRICTION POLICY: C:\Temp\7ZipSfx.000\DNF20\Netfx20a_x86.msi is not digitally signed
MSI (s) (E4:1C) [13:22:16:322]: SOFTWARE RESTRICTION POLICY: C:\Temp\7ZipSfx.000\DNF20\Netfx20a_x86.msi is permitted to run at the 'unrestricted' authorization level.
MSI (s) (E4:1C) [13:22:16:338]: End dialog not enabled
MSI (s) (E4:1C) [13:22:16:338]: Original package ==> C:\Temp\7ZipSfx.000\DNF20\Netfx20a_x86.msi
MSI (s) (E4:1C) [13:22:16:338]: Package we're running from ==> C:\WINDOWS\Installer\1d0c47.msi
MSI (s) (E4:1C) [13:22:16:385]: APPCOMPAT: looking for appcompat database entry with ProductCode '{C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}'.
MSI (s) (E4:1C) [13:22:16:385]: APPCOMPAT: no matching ProductCode found in database.
MSI (s) (E4:1C) [13:22:16:400]: MSCOREE not loaded loading copy from system32
MSI (s) (E4:1C) [13:22:16:478]: Machine policy value 'TransformsSecure' is 1
MSI (s) (E4:1C) [13:22:16:510]: Machine policy value 'DisablePatch' is 0
MSI (s) (E4:1C) [13:22:16:510]: Machine policy value 'AllowLockdownPatch' is 0
MSI (s) (E4:1C) [13:22:16:510]: Machine policy value 'DisableLUAPatching' is 0
MSI (s) (E4:1C) [13:22:16:510]: Machine policy value 'DisableFlyWeightPatching' is 0
MSI (s) (E4:1C) [13:22:16:510]: Looking for secure file transform:
MSI (s) (E4:1C) [13:22:16:510]: Note: 1: 2343
MSI (s) (E4:1C) [13:22:16:510]: Unable to create a temp copy of transform ''.
MSI (s) (E4:1C) [13:22:16:510]: Note: 1: 2203 2: 3: -2147287037
MSI (s) (E4:1C) [13:22:16:510]: Couldn't find cached transform . Looking for it at the source.
MSI (s) (E4:1C) [13:22:16:510]: Resolving source.
MSI (s) (E4:1C) [13:22:16:510]: Resolving source to launched-from source.
MSI (s) (E4:1C) [13:22:16:510]: Setting launched-from source as last-used.
MSI (s) (E4:1C) [13:22:16:510]: SOURCEDIR ==> C:\Temp\7ZipSfx.000\DNF20\
MSI (s) (E4:1C) [13:22:16:510]: SOURCEDIR product ==> {C09FB3CD-3D0C-3F2D-899A-6A1D67F2073F}
MSI (s) (E4:1C) [13:22:16:510]: Looking for secure file transform:
MSI (s) (E4:1C) [13:22:16:510]: Note: 1: 2343
MSI (s) (E4:1C) [13:22:16:510]: Unable to create a temp copy of transform ''.
MSI (s) (E4:1C) [13:22:16:510]: Note: 1: 2203 2: 3: -2147287037
MSI (s) (E4:1C) [13:22:16:510]: Couldn't find cached transform . Looking for it at the source.
MSI (s) (E4:1C) [13:22:16:510]: Looking for secure file transform: C:\Temp\7ZipSfx.000\DNF20\NETWUFIXES.mst
MSI (s) (E4:1C) [13:22:16:510]: Unable to create a temp copy of transform 'C:\Temp\7ZipSfx.000\DNF20\NETWUFIXES.mst'.
MSI (s) (E4:1C) [13:22:16:510]: Note: 1: 2203 2: C:\Temp\7ZipSfx.000\DNF20\NETWUFIXES.mst 3: -2147287038
DEBUG: Error 2203: Database: C:\Temp\7ZipSfx.000\DNF20\NETWUFIXES.mst. Cannot open database file. System error -2147287038
1: 2203 2: C:\Temp\7ZipSfx.000\DNF20\NETWUFIXES.mst 3: -2147287038
MSI (s) (E4:1C) [13:22:16:541]: Note: 1: 1708
MSI (s) (E4:1C) [13:22:16:556]: Product: Microsoft .NET Framework 2.0 Service Pack 2 -- Installation failed.
MSI (s) (E4:1C) [13:22:16:556]: Windows Installer installed the product. Product Name: Microsoft .NET Framework 2.0 Service Pack 2. Product Version: 2.2.30729. Product Language: 0. Installation success or error status: 1624.
MSI (s) (E4:1C) [13:22:16:556]: MainEngineThread is returning 1624
MSI (s) (E4:00) [13:22:16:556]: No System Restore sequence number for this installation.
Error applying transforms. Verify that the specified transform paths are valid.
C:\Temp\7ZipSfx.000\DNF20\NETWUFIXES.mst
MSI (s) (E4:00) [13:22:16:556]: User policy value 'DisableRollback' is 0
MSI (s) (E4:00) [13:22:16:556]: Machine policy value 'DisableRollback' is 0
MSI (s) (E4:00) [13:22:16:556]: Incrementing counter to disable shutdown. Counter after increment: 0
MSI (s) (E4:00) [13:22:16:588]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (E4:00) [13:22:16:603]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\Rollback\Scripts 3: 2
MSI (s) (E4:00) [13:22:16:603]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2
MSI (s) (E4:00) [13:22:16:603]: Note: 1: 1402 2: HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Installer\InProgress 3: 2
MSI (s) (E4:00) [13:22:16:603]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI (s) (E4:00) [13:22:16:603]: Restoring environment variables
MSI © (C8:D4) [13:22:16:603]: Decrementing counter to disable shutdown. If counter >= 0, shutdown will be denied. Counter after decrement: -1
MSI © (C8:D4) [13:22:16:603]: MainEngineThread is returning 1624
=== Verbose logging stopped: 9/3/2009 13:22:16 ===
Do you guys have any idea why it failed?
Thanks
This post has been edited by Karoly67: 03 September 2009 - 02:49 PM
#290
Posted 03 September 2009 - 06:52 PM
After searching around, error code 2203 seems to suggest a problem with permissions that seems to be obstructing .mst to get copied to the installer cache folder, typically %SYSTEMROOT%\Installer and/or to be uncompressed to the %TEMP% folder. To overcome this error try giving full permissions to SYSTEM account on these folders, begin with %TEMP%. You may need to give full permissions on that folders too to current user account.
Please tell us about your progress.
Is it happening that to any of you using win 2K3?
This post has been edited by strel: 03 September 2009 - 07:43 PM
#291
Posted 04 September 2009 - 01:13 PM
I don't think it is a permission issue, because both the System and user accounts have full permission on the temp folder. Also, I generated a .NET package with an early version of your script (from June 2008) and I was able to install it without any problem. Unfortunately, that early version doesn't integrate the new hotfixes...
#292
Posted 04 September 2009 - 01:42 PM
I think if you give permissions to the installer cache folder or if you manage to put a copy of the .mst files in the DNF20 DNF30 DNF35 folders when the installer uncompress (or if you uncompress the installer and then put a copy of .mst files in folders DNF20 DNF30 and DNF35 manually and then run INSTALL.cmd), you'd solve the problem.
About permissions I think this is self explicative.
Again tell us about your progress please.
This post has been edited by strel: 04 September 2009 - 02:03 PM
#293
Posted 07 September 2009 - 12:56 PM
Thanks for your help!
This post has been edited by Karoly67: 07 September 2009 - 01:01 PM
#294
Posted 07 September 2009 - 02:01 PM
I'd try changing the permissions of %SYSTEMROOT%\Installer folder as explained before, to get .mst files copied during install. Or try making it manually, to get the folder name you need the GUID of the installer, you can get it from registry in HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall, there you'll see varios GUID named keys, browse through them looking for .NET in DisplayName values, and you'll have folder name. Copy .mst files used by the installer for that framerwork version (in the TRASFORMS= property of the install command of each framework version, inside the install script of SNMsynth installer) to the installer cache subfolder.
As you see it's far more easy to fix intaller cache folder permissions.
This post has been edited by strel: 14 September 2009 - 06:31 AM
#295
Posted 08 September 2009 - 02:19 PM
I've been using your method for quite a while now and it always works like a charm! Thanks alot!
I just have a question.. Is it possible to implement a method in the script so it supports x64 .Net Framework as well..
I mean.. The method would be more or less the same wouldn't it?
I stumbled upon this site where someone has managed to create such an addon
http://forum.ragezone.com/f528/microsoft-n...lls-aio-522307/
The only "problem" with this pack is that the hotfixes is not included...
Cheers
#296
Posted 08 September 2009 - 04:57 PM
Suppose it would be similar but I'm sure there would be things to adapt and test. Someone asked me about this time ago, at that time I was thinking in making a 64-bit version of the script, the problem is that I'm not having access to a 64-bit machine, so I'm not doing it. What I can offer is my help to anyone who want to do it.
At the moment you have a better option with HJW's .NET x64 installer that includes regular hotfixes, thx to RickSteele for the link.
Cheers.
This post has been edited by strel: 08 September 2009 - 06:49 PM
#297
Posted 09 September 2009 - 05:46 AM
To do this I do the following.
Extract config.txt and the original archive with 7zsplit.
Extract the original archive to a folder.
Add my UPDATE.REG (to disable WebClient service and edit some titles in add/remove).
Edit INSTALL.CMD
%SYSTEMROOT%\REGEDIT /S DNF11.REG REGEDIT /S UPDATE.REG
As you can see I put it afterwards your DNF11.REG
Then I make an archive.
Compile an exe with the silentswitchmaker, using the same config.txt as you did.
When I start it, it immidiatly crashess.
Could you tell me how I should do it, since I have tried it in several ways, and it doesnt work, always crashes.
edit:
Hmm I am thinking about something else.
I edit your generated config.txt to this:
;!@Install@!UTF-8! RunProgram="hidcon:INSTALL.CMD" RunProgram="REGEDIT /S UPDATE.REG" GUIMode="2" ;!@InstallEnd@!
And then just make a new installer. (so i dont have to remake it, just your way with editted config.txt).
Only im not sure if the 2nd runprogram will work?
Oh i forgot, then i have to edit the "_SNMsynth.cmd" also, otherwise it wont grab my UPDATE.REG file (and include it in the archive..)..
hm hm
im stuck.
edit:
Hmm I tried making the installer in this way:
http://www.wincert.net/forum/index.php?/to...less-installer/
And it didnt crash, i used the config.txt I placed earlier this post.
This post has been edited by Raoul90: 09 September 2009 - 07:09 AM
#298
Posted 09 September 2009 - 08:01 AM
And finally you got it, nice idea to make an ad-hoc _SNMsynth.cmd, are you having questions about how to do it?
#299
Posted 09 September 2009 - 12:28 PM
#300
Posted 09 September 2009 - 04:38 PM
You'll need NDP35SP1-KB963707-x86.exe in the work folder in case you are building an installer/nLite add-on containing .NET 3.5 SP1 framework, if you allowed it to install .NET Assistant add-on for Firefox therein, through the related setting in the .ini file. KB963707FIX.mst is precisely a fix to get that hotfix correctly applied to the installer, otherwise it generates errors on install (if I recall it correctly).
- ← Avira Setup Creator - for Avira Antivir Personal v10
- Application Installs
- How Avira Free antivirus program with Silent install updates →



Help


Back to top








