MSFN Forum: Silent .NET Maker (latest update: 20080603) - MSFN Forum

Jump to content


Unattended CD/DVD Guide Homepage · MSFN Forum Rules

Welcome to the Applications Installs forum. Make sure you read the forum rules before you start posting.

Links/Requests to warez and/or any illegal material (porn, cracks, serials, etc..) will not be tolerated. Discussion of circumventing WGA/activation/timebombs/keygens or any other illegal activity will also not be tolerated.

We try our best to keep this forum clean of illegal content. If you see any illegal activity use the "report" button you find in every post to report the specific post to the moderators. If you ignore any of the rules you will be banned without notice.

Read Forum Rules
  • 19 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

Silent .NET Maker (latest update: 20080603) Create silent switchless .NET installers for Win2K/XP/2K3 x86 Rate Topic: -----

#1 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 16 January 2007 - 06:12 AM


Silent .NET Maker

This batch utility allows you to create your own silent switchless installers for .NET 1.1, .NET 2.0 SP1, .NET 3.0 SP1 and .NET 3.5. They are compatible with Windows 2000 (except .NET 3.x), Windows XP x86 and Windows Server 2003 x86 (except .NET 1.1). The installers for .NET 1.1 and 2.0 SP1 can be installed at T-13.

Quick download: SNM.zip
Changelog: see bottom


Supported:
- .NET 1.1 package
- any NDP1.1*.exe, Sxxxxxx.msp and Mxxxxxx.msp hotfix for .NET 1.1
- language pack for .NET 1.1
- .NET 2.0 SP1 package (NetFx20SP1_x86.exe)
- language pack for .NET 2.0 SP1 (NetFx20SP1_x86XX.exe)
- language pack for .NET 3.0 SP1 (NetFx30SP1_x86XX.exe -- not recommended)
- full .NET 3.5 package (dotnetfx35.exe -- contains .NET 2.0 SP1, .NET 3.0 SP1 and .NET 3.5)
- language pack for .NET 3.5 (dotnetfx35langpack_x86XX.exe -- only .NET 2.0 SP1 and .NET 3.0 SP1 portions are supported)

Hotfixes and language packs require the main .NET package they apply to. This script is not intended to create installers for hotfixes or language packs only.

Processing a specific version of .NET requires it to be already installed on the system on which you run this script (.NET 1.1 needs to be installed if you want to process .NET 1.1 and .NET 2.0 SP1 needs to be installed if you want to process .NET 2.0 SP1). For .NET 3.0 SP1, it is enough to have .NET 2.0 SP1 installed. For .NET 3.5, you need at least .NET 3.0 SP1 installed which in turn requires .NET 2.0 SP1. This is not a limitation of the script, but of the fact that an administrative installation can't be processed if the packages aren't installed "normally" first.


MSXML6 in .NET 3.0 SP1...
Currently, .NET 3.0 SP1 contains the latest version of MSXML6 SP1 so it isn't needed to include it separately in the root of the SNM working folder anymore. Please remove it if it exists because SNM will assume it's newer than the MSXML6 package in .NET 3.0 SP1.
When DNF30.exe or DNF35.exe is installed, MSXML6 binaries are only copied if they don't yet exist in system32. This decision was made because Windows XP SP3 contains MSXML6 SP2.


.NET 3.0 SP1 language pack...
While the standalone .NET 3.0 SP1 language pack (NetFx30SP1_x86XX.exe) is supported, it is not recommended to use it because it doesn't contain the localized XML Paper Specification update. It's better to use the language pack for .NET 3.5 which contains the complete .NET 3.0 SP1 language pack. In this case, you can also ignore the standalone language pack for .NET 2.0 SP1 (NetFx20SP1_x86XX.exe) if applicable because it's also part of the .NET 3.5 language pack.


.NET 3.5 language pack...
This pack is fully supported with the exception of the language pack for .NET 3.5 itself. I'm still struggling with that bit, so only the .NET 2.0 SP1 and .NET 3.0 SP1 language packs are processed.


Hotfixes for .NET 2.0 SP1 and .NET 3.0 SP1...
These aren't really supported because I don't know of any, so I can't know how they will be named or how they should be processed. Silent .NET Maker currently assumes the names of the updates for .NET 2.0 SP1 start with "NetFX20" and those for .NET 3.0 SP1 with "NetFX30" but that may need to be changed.


.NET 3.x notes...
.NET 3.0 SP1 can't be installed at T-13 (SVCPACK) because it breaks the WebClient service; it must be installed at first GUI logon.
.NET 3.0 SP1 won't install if you install .NET 1.1 in the same go unless you install .NET 1.1 AFTERWARDS.
By default, Silent .NET Maker will split the individual frameworks from the .NET 3.5 package into DNF20.exe, DNF30.exe and DNF35.exe. This script is primarily intended to create installers for an unattended Windows installation, and since .NET 3.0 SP1 should be installed at first GUI logon and .NET 2.0 SP1 doesn't have to be necessarily, it is better to keep them separated to give you more leeway as to what should be installed when.
If you want to change the default behavior, open _SNM.ini (the answer file) in a basic text editor and change the default settings to:
PROCESS_DNF35_DNF2=YES if you want .NET 2.0 SP1 included in the DNF35.exe package
PROCESS_DNF35_DNF3=YES if you want .NET 3.0 SP1 included in the DNF35.exe package


Answer file...
The answer file _SNM.ini allows you to modify some things to your needs. For example, to merge .NET 1.1 and .NET 2.0 SP1 packages, open the answer file in a basic text editor and set MERGE_FRAMEWORKS at the bottom to 12 (MERGE_FRAMEWORKS=12 without any spaces). The answer file included in the script package shows the defaults used by the script, so you only need it if you want to modify something.


Merging packages...
To merge .NET 1.1 with .NET 2.0 SP1, set MERGE_FRAMEWORKS in the answer file to 12.
To make a single package containing all processed .NET Frameworks, set MERGE_FRAMEWORKS to FULL. In order to allow .NET 3.0 SP1 installation to complete, .NET 1.1 is installed last. If you don't like the sound of this... don't do it.
MERGE_FRAMEWORKS=12
MERGE_FRAMEWORKS=FULL


Setting compression ratio...
If the temporary file named TEMP.7z doesn't change size for several minutes, it is more than likely your system cannot handle the default compression ratio used by the script. At the bottom of the answer file you can find a variable called COMPRESSION_RATIO; set it to MED (medium) or LOW if you are experiencing problems. Try MED first.
COMPRESSION_RATIO=MED
COMPRESSION_RATIO=LOW


Extra features of the outputted .NET 1.1 installer:
- if a language pack is integrated, it will be reflected in the name of the outputted installer (eg, DNF11_es.exe)
- if any hotfix for .NET 1.1 SP1 is slipstreamed, its useless entry is removed from Add/Remove Programs
- if the language pack is integrated, the English .NET 1.1 configuration/wizards links are removed from the Administrative Tools folder


Extra features of the outputted .NET 2.0 SP1 installer:
- if a language pack is integrated, it will be reflected in the name of the outputted installer (eg, DNF20_fr.exe)
- if the system on which it's installed is not Windows 2000 and if Windows setup is in progress, the registry is modified to allow .NET 2.0 SP1 to be installed from SVCPACK
- if any hotfix for .NET 2.0 SP1 is slipstreamed, its useless entry is removed from Add/Remove Programs


Extra features of the outputted .NET 3.0 SP1 installer:
- if a language pack is integrated, it will be reflected in the name of the outputted installer (eg, DNF30_fr.exe)
- if the system on which it's installed is not Windows 2000 and if Windows setup is in progress, the registry is modified to allow .NET 2.0 SP1 to be installed from SVCPACK
- the .NET 3.0 SP1 portions are not processed if the system is Windows 2000
- if any hotfix for .NET 3.0 SP1 is slipstreamed, its useless entry is removed from Add/Remove Programs


Features specific to the script only:
- the installers are created in a subfolder of which the name is "OUT" followed by a number starting with "1"
- if the script is run again, it will create the installers in a new OUT* folder as to not overwrite the previous ones
- empty OUT* folders are deleted
- any remaining temporary folders and files from a previous failed run are removed first


Instructions:
1) Download the script package and extract it into a folder of your choice. The path can contain spaces but no special characters such as exclamation marks.
2) Read readme.txt if it's your first time
3) Download the .NET installer(s) you wish to have processed into the folder you created:
- .NET 1.1
- NDP1.1sp1-KB867460-X86.exe
- NDP1.1sp1-KB928366-X86.exe
- language pack for .NET 1.1 in your language
- .NET 2.0 SP1 (do not rename; not needed if including dotnetfx35.exe)
- language pack for .NET 2.0 SP1 in your language (do not rename; not needed if including both dotnetfx35.exe and the language pack for dotnetfx35.exe)
- .NET 3.5 (full redist called dotnetfx35.exe with a size of 197MB)
- language pack for .NET 3.5 in your language (do not rename)
4) Optionally, edit _SNM.ini (the answer file) to your needs
5) Run the script by double-clicking SNM.cmd from within a Windows account with administrative privileges


Tested and found working on:
- Windows 2000 SP4 (English)
- Windows XP SP2 (English and Dutch)


Thanks to Oleg_Sch for the hidcon.exe and msistub.exe utilities.
hidcon.exe: totally hide the DOS box that would appear when the batch file in a silent installer is run
msistub.exe: interface with MSIEXEC.EXE


Also thanks to Acheron for letting me know how to create a usable administrative install of .NET 2.0 SP1.


Changelog:
20080603
- allowed creating merged .NET 1.1 and .NET 2.0 SP1 installer with dotnetfx.exe and dotnetfx35.exe as input files
- names of .NET 2.0 SP1 hotfixes are expected to start with "NetFX20" instead of "NDP20"
- attempting to get the language of the language pack for .NET 1.1 for the name of the standalone .NET 1.1 output file (eg, DNF11_es.exe)
- code cleanup
20080530b
- fixed support for Chinese Simplified, Chinese Traditional, Portuguese and Portuguese Brazil language packs for .NET 2.0 SP1, .NET 3.0 SP1 and .NET 3.5
20080530
- added support for NetFx20SP1_x86.exe, NetFx20SP1_x86XX.exe, NetFx30SP1_x86XX.exe and dotnetfx35.exe
- added almost complete support for dotnetfx35langpack_x86XX.exe (.NET 2.0 SP1 and .NET 3.0 SP1 language packs)
- if a language pack is integrated, the name of the silent DNF20 and DNF30 executables will contain the language code (eg, DNF30_fr.exe)
- included newer version of 7zS.sfx (version 4.57 + custom icon + compressed with UPX 3.03)
- updated _SNM.ini
- to make a single installation package, MERGE_FRAMEWORKS=13 should now be MERGE_FRAMEWORKS=FULL
- during setup of DNF30.exe and DNF35.exe, MSXML6 binaries are only copied if they don't yet exist in system32
- removed support for .NET 2.0, .NET 2.0 language pack, NET 3.0 and .NET 3.0 language pack
20070712b
- fixed bug with merged .NET 1.1/3.0 installer whereby .NET 1.1 would fail to install on Win2K
- changed processing order of .NET 1.1 hotfixes just in case (S*.msp, then NDP1.1*.exe, then M*.msp)
- Add/Remove Programs entry is now removed for all current and future .NET 2.0 hotfixes
- Add/Remove Programs entry is now removed for all current and future .NET 3.0 hotfixes
20070710b
- removed support for hotfixes named NDP1.1*.msp; use the original Sxxxxxx.msp and Mxxxxxx.msp names
- Add/Remove Programs entry is now removed for all current and future .NET 1.1 hotfixes (previously only KB886903)
20070710
- allowed slipstreaming of NetFX30*.msp files for Windows Presentation Foundation and the .NET 3.0 "wrapper"
- now checking for the existence of Windows Presentation Foundation and the .NET 3.0 "wrapper" before applying a NetFX30 patch
- you can now have a mix of *.msp and *.exe hotfixes for all .NET packages (previously only one type was allowed per package)
20070709
- added support for NetFX30-KB*.exe hotfixes for Windows Presentation Foundation (like KB932471) or the .NET 3.0 "wrapper"
20070624b
- workaround for harmless error message which appeared when SNM created empty dummy file
20070624
- added support for xpsepsc*.exe updates for .NET 3.0 and .NET 3.0 langpack; they don't have to be renamed
- it's no longer needed to rename msxml6_x86.msi to msxml6.msi
- the dummy file for KB886903 for .NET 1.1 is now 0KB instead of 1KB
20070201
- the entries in Add/Remove Programs for the .NET 2.0 hotfixes are removed
20070127
- msistub.exe (2.5 KB) is now used instead of StartX.exe (164.0 KB)
- the PROCESS_DNF3_DNF2 variable now defaults to SEPARATE, which means: create DNF20.exe and don't include .NET 2.0 in DNF30.exe
- updated readme.txt with info about msistub.exe
20070125
- updated readme.txt (.NET 3.0 cannot be installed from SVCPACK)
20070123
- any msxml6-KB* executable is accepted so people don't have to extract msxml6.msi (msxml6.msi is still accepted)
20070122
- some temp files and folders are removed earlier so you don't have to look at the mess while the silent installers are created
- added support for .NET 3.0 language pack (langpack3.exe)
- if the system on which the silent .NET 3.0 installer will be installed is Win2K, the .NET 3.0 portions won't execute (Christmas present for the absent-minded)
- faster querying for the Windows version
- updated readme.txt
20070121
- using hidcon.exe from Oleg_Sch (included in new script package) instead of cmdow.exe
- code cleanup
- updated readme.txt
20070120
- allow merging of .NET 1.1 with .NET 3.0 (install order: .NET 2.0, .NET 3.0 and then .NET 1.1)
- allow custom compression ratio setting from answer file
- main three .NET 3.0 components are left unextracted to keep down the size of the silent installer
- variable "PROCESS_DNF3_DNF3" is now called "PROCESS_DNF3_WRAPPER"
- the msxml6 binaries are processed individually to keep the total size down; you won't see an MSXML6 entry in Add/Remove Programs anymore
20070119-b
- forgot to allow renaming of langpack files
20070119
- fixed potential issue with Win2K if reg.exe is slipstreamed
- resulting installers can now be installed on a "normal" system too
- added support for .NET 3.0 (allow replacing msxml6.msi)
- optional answer file
- possibility to merge .NET 1.1 with .NET 2.0 packages

This post has been edited by Tomcat76: 03 June 2008 - 10:47 AM



#2 User is offline   Super-Magician 

  • Friend of MSFN
  • PipPipPipPipPip
  • Group: Members
  • Posts: 970
  • Joined: 15-January 06

Posted 16 January 2007 - 07:13 AM

Since CMDOW causes problems with quite a few virus scanners, can you provide support for hidec?

Thanks for the script by the way. Wondering if you can add in .NET 3.0 some day...:whistle:

#3 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 16 January 2007 - 08:53 AM

I'll give RunHiddenConsole.exe another go... :)

#4 User is offline   S3pHiroTh 

  • Member
  • PipPip
  • Group: Members
  • Posts: 122
  • Joined: 04-September 06

Posted 16 January 2007 - 09:53 AM

I have tried, but the language pack for Net 1.1 doesn't install at all.

#5 User is offline   daddydave 

  • Member
  • PipPip
  • Group: Members
  • Posts: 102
  • Joined: 08-December 06
  • OS:Windows 7 x64
  • Country: Country Flag

Posted 16 January 2007 - 10:11 AM

It looks like a leading space accidentally slipped into the name of " SNM.cmd"

#6 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 16 January 2007 - 10:21 AM

View PostTomcat76, on Jan 16 2007, 03:53 PM, said:

I'll give RunHiddenConsole.exe another go... :)
Doesn't work, just like many times before. So I'll stick with CMDOW.

View PostS3pHiroTh, on Jan 16 2007, 04:53 PM, said:

I have tried, but the language pack for Net 1.1 doesn't install at all.
.NET did but the language pack didn't? That's odd... How big is DNF11.exe?

View Postdaddydave, on Jan 16 2007, 05:11 PM, said:

It looks like a leading space accidentally slipped into the name of " SNM.cmd"
That's not by accident :)

#7 User is offline   S3pHiroTh 

  • Member
  • PipPip
  • Group: Members
  • Posts: 122
  • Joined: 04-September 06

Posted 16 January 2007 - 10:21 AM

Isn't accidentaly is for evidence!!! So that file is always the first file of the directory!

This is the size of my DNF11.exe

11.554.146 bytes

This post has been edited by S3pHiroTh: 16 January 2007 - 10:24 AM


#8 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 16 January 2007 - 10:31 AM

With that size the language pack can never be part of it. Is it called langpack.exe?

#9 User is offline   S3pHiroTh 

  • Member
  • PipPip
  • Group: Members
  • Posts: 122
  • Joined: 04-September 06

Posted 16 January 2007 - 10:35 AM

View PostTomcat76, on Jan 16 2007, 05:31 PM, said:

With that size the language pack can never be part of it. Is it called langpack.exe?


Eh eh you found my error... I have renamed it language1.exe when I have download it... my apologies. :ph34r:

EDIT: Thanks man, this script works well :D

This post has been edited by S3pHiroTh: 16 January 2007 - 02:37 PM


#10 User is offline   Super-Magician 

  • Friend of MSFN
  • PipPipPipPipPip
  • Group: Members
  • Posts: 970
  • Joined: 15-January 06

Posted 16 January 2007 - 03:52 PM

OK, thanks for trying the RunHiddenConsole thing. Never mind...:whistle:

#11 User is offline   glentium 

  • SQL DBA
  • PipPip
  • Group: Members
  • Posts: 183
  • Joined: 28-July 05

Posted 16 January 2007 - 06:53 PM

this is great, thanks Tomcat!
btw, I know that dotnet30 is actually dotnet20 plus extras, but for people who want those extras, would you please add support for using the dotnet30 installer instead?

#12 User is offline   Kiki Burgh 

  • MSFN Expert
  • PipPipPipPipPipPip
  • Group: Members
  • Posts: 1,426
  • Joined: 06-January 06

Posted 16 January 2007 - 10:54 PM

hi all! i see the same crowd here :P ... just stumbled upon this via HFSLIP ... i thought this would be discussed in HFSLIP too ... and eventually included in the script? just asking ...

#13 User is offline   S3pHiroTh 

  • Member
  • PipPip
  • Group: Members
  • Posts: 122
  • Joined: 04-September 06

Posted 16 January 2007 - 11:42 PM

View PostKiki Burgh, on Jan 17 2007, 05:54 AM, said:

hi all! i see the same crowd here :P ... just stumbled upon this via HFSLIP ... i thought this would be discussed in HFSLIP too ... and eventually included in the script? just asking ...


Mmmhhh i think that copy this script in HFTOOLS is the better idea, and HFSLIP check for it (create a NETFRW directory to copy files), will create the silent installers

#14 User is offline   glentium 

  • SQL DBA
  • PipPip
  • Group: Members
  • Posts: 183
  • Joined: 28-July 05

Posted 17 January 2007 - 09:36 PM

I don't think anyone would want to recreate dotnet installers everytime HFSLIP is run! just use this tool once (or when another patch for dotnet is available and support for it is added to SNM) to create the installers and add them to HFSVCPACK folder. although the idea is possible, why add bloat to HFSLIP with this one? I believe creating silent installers is beyond HFSLIP principle. HFSLIP is geared toward (and EXCELLENT for) slipstreaming/integrating/(now 'guirunonceing') hotfixes, updates and much, much, much more, and not for creating silent installers... :)

This post has been edited by glentium: 17 January 2007 - 09:38 PM


#15 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 18 January 2007 - 06:43 PM

Dotnet3 is such a beast.... And Windows Communication Foundation, Windows Presentation Foundation and Windows Workflow Foundation won't install if .NET 1.1 is installed in the same go.

Next version:
- support for dotnet3.exe (not yet the language pack, though langpack2.exe is supported)
- optional answer file (install or ignore specific components, set some file names, and merging .NET 1.1 with .NET 2.0)
- fix potential problem with Win2K if reg.exe is slipstreamed (not sure if that really is a problem)
- installers can be tested on an already installed system
- overwrite msxml6.msi from .NET 3.0

This post has been edited by Tomcat76: 19 January 2007 - 08:54 AM


#16 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 19 January 2007 - 08:55 AM

New version :)

#17 User is offline   daddydave 

  • Member
  • PipPip
  • Group: Members
  • Posts: 102
  • Joined: 08-December 06
  • OS:Windows 7 x64
  • Country: Country Flag

Posted 19 January 2007 - 11:40 AM

I am running the new version under Windows 2000, no language packs and no .NET3.0, and it created the DNF11.exe file after about 1.5 hours and is has been on "Creating silent .NET 2.0 installer..." for about 40 minutes. Should I assume this is normal? I guess there is quite a bit of processing going on.

To be honest I was running a cpu intensive VM for a while too, but I am out of it now, and I noticed the same with the old version.

This post has been edited by daddydave: 19 January 2007 - 12:52 PM


#18 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 19 January 2007 - 11:46 AM

It isn't normal. How much memory do you have? Are you creating these installers in a VM?


[script updated again - see changelog for details]

#19 User is offline   daddydave 

  • Member
  • PipPip
  • Group: Members
  • Posts: 102
  • Joined: 08-December 06
  • OS:Windows 7 x64
  • Country: Country Flag

Posted 19 January 2007 - 12:06 PM

View PostTomcat76, on Jan 19 2007, 12:46 PM, said:

It isn't normal. How much memory do you have? Are you creating these installers in a VM?


Not running the script under a VM, but see edit to previous post. The other VM CPU% did spike at times, it was running an unattended Windows install of all things!

Physical: 457136 KB
Pagefile: initial 672MB, Current 672MB,, maximum 1344MB, recommended 669MB
Processor: Sempron 3200 I think

If I run it again, I'll try increasing the pagefile and running it by itself. 1 GB memory stick is in my future I hope.


EDIT Memory usage of 7za.exe changes every second but gets over 300,000 K sometimes according to Task Manager. It takes a while (a minute maybe?) for it to add a second to CPU Time for 7za, currently at 2:38

This post has been edited by daddydave: 19 January 2007 - 01:03 PM


#20 User is offline   Tomcat76 

  • MSFN Junkie
  • Group: Developers
  • Posts: 3,174
  • Joined: 08-August 05

Posted 19 January 2007 - 01:00 PM

I don't really know how much RAM is needed and how big the pagefile should be for this sort of stuff. I was using 2x512MB sticks for a long time and now have 2x1024MB sticks. The pagefile has been on 2GB all this time.

My timings:
* create admin source for DNF11 and langpack + slipstream patches = 24 seconds
* create admin source for DNF20 and langpack + slipstream patches = 16 seconds
* create DNF11.exe from admin source = 43 seconds
* create DNF20.exe from admin source = 64 seconds

I know that the process of making the EXEs requires quite a bit of memory and that the amount of memory does have a say in this, but your timings are really extreme. I suppose mine are too but it shouldn't be too much slower.

Set your pagefile to a fixed 1024MB or 1536MB (identical min & max) and see if that helps.

Share this topic:


  • 19 Pages +
  • 1
  • 2
  • 3
  • Last »
  • You cannot start a new topic
  • You cannot reply to this topic

1 User(s) are reading this topic
0 members, 1 guests, 0 anonymous users



All trademarks mentioned on this page are the property of their respective owners
Copyright © 2001 - 2013 msfn.org
Privacy Policy