Jump to content

Silent .NET Maker (latest update: 20080603)


Tomcat76

Recommended Posts

EDIT: Solution here has been superseded by the one in Silent .NET Maker synthesized

I have incorporated the modifications proposed in posts #222, #229 and #234, in page 12 of this thread, to make a synthesized version of Tomcat's script that work with all new .NET framework updates, both for XP and 2000 x86 until date, in order to ease your work. That is, in addition to what original Tomcat's script support, this version:

- Builds real silent installers, without packet unzipping progress boxes, as proposed in post #222.

- Support NDP1.1sp1-KB947742-X86.exe update under windows 2000, as proposed in post #229

- Support .NET framework 3.5 SP1 as proposed in post #234 by DarkShadows.

...

Edited by strel
Link to comment
Share on other sites


Having problems. n00b problems.

Both silent .net makers compile a file called DNF20.exe - I add that to nlite and, while processing, the program is integrating the file, an error is displayed saying that it's not an expected type of hotfix.

I urgently need to slipstream .net 2.0 SP1. Help!

Link to comment
Share on other sites

The installers obtained by this method are not of the form of a hotfix suitable to nlite "hotfix-addons-updates packs" section. Instead you should use methods proposed in first post. If you want to integrate .NET framework in that fashion You'll find what you're searching in the link in post #242

Edited by strel
Link to comment
Share on other sites

The installers obtained by this method are not of the form of a hotfix suitable to nlite "hotfix-addons-updates packs" section. Instead you should use methods proposed in first post. If you want to integrate .NET framework in that fashion You'll find what you're searching in the link in post #242

Thanks... I'll try with a RunOnce string.

Link to comment
Share on other sites

@strel:

Using your modified script there is still a problem while processing the German Language Pack for .NET 3.5 SP1:

dn35langde56if.png

Translated:

An unexpected error occurred while installing this package.

Possibly this is a package-related problem.

The error code is 2728.

Any ideas?

Update:

It seems that the file netfx30lpa_x86.msi is not found in \TMP\TMP2\ADMIN30A_LNG\. Actually the whole directory does not exist.

Edited by gr11x
Link to comment
Share on other sites

I have incorporated the modifications proposed in posts #222, #229 and #234, in page 12 of this thread, to make a synthesized version of Tomcat's script that work with all new .NET framework updates, both for XP and 2000 x86 until date, in order to ease your work. That is, in addition to what original Tomcat's script support, this version:

- Builds real silent installers, without packet unzipping progress boxes, as proposed in post #222.

- Support NDP1.1sp1-KB947742-X86.exe update under windows 2000, as proposed in post #229

- Support .NET framework 3.5 SP1 as proposed in post #234 by DarkShadows.

To achieve this:

1. Follow the instructions described by Tomcat in the first post, steps 1 to 4, not 5, that is, don't run Tomcat original script. And in step 3, do not download .NET framework 3.5 as proposed, instead download .NET framework 3.5 SP1 full reditributable

2. Optionally, if you use windows 2000, download the update NDP1.1sp1-KB947742-X86.exe.

3. Download which includes:

- Sythesized version of Tomcat's script.....................................SNM_mod2.cmd

- Oleg_Sch's modified 7-zip sfx utility 1.2b861...........................7zSD.sfx

and extract it in your work folder.

4. Now run SNM_mod2.cmd and you have it. :thumbup

Feedback appreciated.

OH MAN!!!!!! I could kiss you for this dude!!!! Awsome job downloading the extra bits now and will run it, amazing job buddy as always your hard work is very much appreciated!!!

Thanks again :D

Stoner81

Link to comment
Share on other sites

Hello Boys.

Ok so I tried this new version and dotnet still does not install.

Here is what I did

I followed instructions 1 to 4 from the first post.

I downloaded the dotnet 3.5 version that was put in Stoner81's post.

In my folder SNM I have dotnet 1.1//2.0//3.0//3.5 <--From Stoner81 post the 232 mb version.

I have the NDP1.1sp1-KB947742-X86.exe <--I am not using Win2k I don't know if that would make a difference.

I run the modified batch file and it creates a 53mb file

I put the file in the HFGUIRUNONCE folder and create my ISO.

Once my ISO is created I install Windows on a VM

After the installation is complete I go to Windows Update and the only 2 updates that I have to do are dotnet 1.1 and dotnet 2.0

Perhaps I did something wrong?

Link to comment
Share on other sites

After the installation is complete I go to Windows Update and the only 2 updates that I have to do are dotnet 1.1 and dotnet 2.0

If you don't run win2k you don't need NDP1.1sp1-KB947742-X86.exe, but don't interfere in results-

I don't use HFslip, so I don't know if HFGUIrunonce is the apropiate place from which to install, but you can try Runonceex, Runonce or GUIrunonce methods manually.

From the first post:

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.

I don't merge installers so I can't tell you nothing about the merged one, but I'd try with separate installers.

Link to comment
Share on other sites

...An unexpected error occurred while installing this package.

Possibly this is a package-related problem.

The error code is 2728...

This problem has been described last august in post #217, but no solution yet. I've done this:

EDIT: Solution here has been superseded by the one in Silent .NET Maker synthesized

The changes applies on the original script:

- Right after this line:

IF EXIST _SNM.ini FOR /F "DELIMS=" %%I IN ('FINDSTR/R "=" _SNM.ini') DO SET %%I

I've inserted this:

IF "%PROCESS_DNF35%"=="YES" IF EXIST dotnetfx35.exe (
IF NOT EXIST FILEVER.VBS (
ECHO>>FILEVER.VBS Set objFSO = CreateObject^("Scripting.FileSystemObject"^)
ECHO>>FILEVER.VBS Wscript.Echo objFSO.GetFileVersion^(WScript.arguments^(0^)^)
)
IF EXIST dotnetfx35langpack_x86*.exe (
IF "%PROCESS_DNF2%"=="YES" IF "%PROCESS_DNF2_LNG%"=="YES" IF EXIST NetFx20SP1_x86.exe IF EXIST NetFx20SP1_x86*.exe SET PROCESSING20SP1LNG=1
IF "%PROCESS_DNF2_LNG%"=="YES" IF NOT DEFINED PROCESSING20SP1LNG SET PROCESS_DNF35_LNGEXE=YES
IF NOT "%MERGE_FRAMEWORKS%"=="12" IF "%PROCESS_DNF3_LNG%"=="YES" SET PROCESS_DNF35_LNGEXE=YES&IF "%PROCESS_DNF35_LNG%"=="YES" SET PROCESS_DNF35_LNGEXE=YES
IF DEFINED PROCESS_DNF35_LNGEXE (
FOR /F %%I IN ('DIR/B dotnetfx35langpack_x86*.exe') DO (
IF DEFINED LOOP ECHO ERROR: Too many dotnetfx35langpack_x86*.exe files to process in the work folder.&PAUSE&EXIT
FOR /F %%J IN ('CSCRIPT //NOLOGO filever.vbs %%I') DO FOR /F %%K IN ('CSCRIPT //NOLOGO filever.vbs dotnetfx35.exe') DO (
IF "%%J"=="%%K" (
IF "%%J"=="3.5.30729.1" SET DNF35VER=3.5 SP1&SET DNF30VER=3.0 SP2&SET DNF20VER=2.0 SP2
IF "%%J"=="3.5.21022.8" SET DNF35VER=3.5&SET DNF30VER=3.0 SP1&SET DNF20VER=2.0 SP1
) ELSE ECHO ERROR: dotnetfx35.exe - %%I version mismatch&PAUSE&EXIT
)
SET LOOP=1
)
)
) ELSE FOR /F %%J IN ('CSCRIPT //NOLOGO filever.vbs dotnetfx35.exe') DO (
IF "%%J"=="3.5.30729.1" SET DNF35VER=3.5 SP1&SET DNF30VER=3.0 SP2&SET DNF20VER=2.0 SP2
IF "%%J"=="3.5.21022.8" SET DNF35VER=3.5&SET DNF30VER=3.0 SP1&SET DNF20VER=2.0 SP1
)
)
IF "%PROCESS_DNF2%"=="YES" IF EXIST NetFx20SP1_x86.exe (
IF "%DNF20VER%"=="2.0 SP2" (ECHO ERROR: Too many .NET 2.0 versions to process - SP1 in NetFx20SP1_x86.exe and SP2 in dotnetfx35.exe.&PAUSE&EXIT) ELSE SET DNF20VER=SP1
)
SET LOOP=
IF EXIST NetFx20SP1_x86*.exe FOR /F %%I IN ('DIR/B NetFx20SP1_x86*.exe') DO IF NOT "%%I"=="NetFx20SP1_x86.exe" (
IF DEFINED LOOP ECHO ERROR: Too many NetFx20SP1_x86*.exe langpacks to process in the work folder.&PAUSE&EXIT
SET LOOP=1
)

- I've substituted all the strings of the form "LNGSTR=_" without the quotes, with "LNGSTR=" without the quotes, and...

this line:

	SET SSIP=1&ECHO Processing .NET 2.0 installer...&CALL :TMPCOUNT

with this other:

	SET SSIP=1&ECHO Processing .NET %DNF20VER% installer...&CALL :TMPCOUNT

this line:

		SET SSIP=1&ECHO Processing custom .NET 3.0 admin install...

with this other:

		SET SSIP=1&ECHO Processing custom .NET %DNF30VER% admin install...

this line:

		SET SSIP=1&ECHO Processing custom .NET 3.5 admin install...

with this other:

		SET SSIP=1&ECHO Processing custom .NET %DNF35VER% admin install...

this line:

	SET SSIP=1&ECHO Processing .NET 3.5 installer...&CALL :TMPCOUNT

with this other:

	SET SSIP=1&ECHO Processing .NET %DNF35VER% installer...&CALL :TMPCOUNT

these lines:

IF "%MERGE_FRAMEWORKS%"=="12" (
ECHO Creating merged .NET 1.1 and 2.0 SP1 installer...&SET NAME=DNF11_20&SET FLD=DNF&CALL :EXEMAKER
) ELSE IF "%MERGE_FRAMEWORKS%"=="FULL" (
ECHO Creating merged .NET installer...&SET NAME=DNF_all&SET FLD=DNF&CALL :EXEMAKER
) ELSE (
IF EXIST DNF1 (ECHO Creating silent .NET 1.1 installer...&SET NAME=DNF11%DNF11LNGSTR%&SET FLD=DNF1&CALL :EXEMAKER)
IF EXIST DNF2 (ECHO Creating silent .NET 2.0 SP1 installer...&SET NAME=DNF20%DNF20LNGSTR%&SET FLD=DNF2&CALL :EXEMAKER)
IF EXIST DNF3 (ECHO Creating silent .NET 3.0 SP1 installer...&SET NAME=DNF30%DNF30LNGSTR%&SET FLD=DNF3&CALL :EXEMAKER)
IF EXIST DNF35 (ECHO Creating silent .NET 3.5 installer...&SET NAME=DNF35&SET FLD=DNF35&CALL :EXEMAKER)
)

with these others:

IF "%MERGE_FRAMEWORKS%"=="12" (
ECHO Creating merged .NET 1.1 %DNF11LNGSTR% and %DNF20VER% %DNF20LNGSTR% installer...&SET NAME=DNF11%DNF11LNGSTR%20%DNF20VER:~-3%%DNF20LNGSTR%&SET FLD=DNF&CALL :EXEMAKER
) ELSE IF "%MERGE_FRAMEWORKS%"=="FULL" (
ECHO Creating merged .NET 1.1 %DNF11LNGSTR%, %DNF20VER% %DNF20LNGSTR%, %DNF30VER% %DNF30LNGSTR% and %DNF35VER% %DNF35LNGSTR% installer...&SET NAME=DNF11%DNF11LNGSTR%20%DNF20VER:~-3%%DNF20LNGSTR%30%DNF30VER:~-3%%DNF30LNGSTR%35%DNF35VER:~-3%%DNF35LNGSTR%&SET FLD=DNF&CALL :EXEMAKER
) ELSE (
IF EXIST DNF1 (ECHO Creating silent .NET 1.1 installer...&SET NAME=DNF11%DNF11LNGSTR%&SET FLD=DNF1&CALL :EXEMAKER)
IF EXIST DNF2 (ECHO Creating silent .NET %DNF20VER% installer...&SET NAME=DNF20%DNF20VER:~-3%%DNF20LNGSTR%&SET FLD=DNF2&CALL :EXEMAKER)
IF EXIST DNF3 (ECHO Creating silent .NET %DNF30VER% installer...&SET NAME=DNF30%DNF30VER:~-3%%DNF30LNGSTR%&SET FLD=DNF3&CALL :EXEMAKER)
IF EXIST DNF35 (ECHO Creating silent .NET %DNF35VER% installer...&SET NAME=DNF35%DNF35VER:~-3%%DNF35LNGSTR%&SET FLD=DNF35&CALL :EXEMAKER)
)

and these lines:

START/WAIT MSIEXEC /a "!TMPDIR!\LNGEXT\netfx30lp\netfx30lpa_x86.msi" TARGETDIR="!TMPDIR!\ADMIN30A_LNG" /qb
START/WAIT MSIEXEC /a "!TMPDIR!\ADMIN30A_LNG\netfx30lpa_x86.msi" TARGETDIR="!DNF3DIR!DNF30\LNG" /qb
FOR /F %%I IN ('DIR/B/ON "!TMPDIR!\LNGEXT\netfx30lp\*.msp"') DO (
START/WAIT MSIEXEC /p "!TMPDIR!\LNGEXT\netfx30lp\%%I" /a "!DNF3DIR!DNF30\LNG\netfx30lpa_x86.msi" /qb
)

with these others:

IF "%DNF35VER%"=="3.5" (
START/WAIT MSIEXEC /a "!TMPDIR!\LNGEXT\netfx30lp\netfx30lpa_x86.msi" TARGETDIR="!TMPDIR!\ADMIN30A_LNG" /qb
START/WAIT MSIEXEC /a "!TMPDIR!\ADMIN30A_LNG\netfx30lpa_x86.msi" TARGETDIR="!DNF3DIR!DNF30\LNG" /qb
FOR /F %%I IN ('DIR/B/ON "!TMPDIR!\LNGEXT\netfx30lp\*.msp"') DO START/WAIT MSIEXEC /p "!TMPDIR!\LNGEXT\netfx30lp\%%I" /a "!DNF3DIR!DNF30\LNG\netfx30lpa_x86.msi" /qb
)
IF "%DNF35VER%"=="3.5 SP1" (
FOR /F %%I IN ('DIR/B/ON "!TMPDIR!\LNGEXT\netfx30lp\*.msp"') DO START/WAIT MSIEXEC /p "!TMPDIR!\LNGEXT\netfx30lp\%%I" /a "!TMPDIR!\LNGEXT\netfx30lp\netfx30lpa_x86.msi" /qb
START/WAIT MSIEXEC /a "!TMPDIR!\LNGEXT\netfx30lp\netfx30lpa_x86.msi" TARGETDIR="!DNF3DIR!DNF30\LNG" /qb
)

And there you have it. Now I'm gonna combine this with the synthesized version.

Edited by strel
Link to comment
Share on other sites

I have incorporated to a SILENT .NET MAKER SYNTHESIZED version, the modifications proposed in posts #222, #229, #234 and #265 of this thread, to make a script that work with all new x86 .NET framework updates until date, in order to ease your work. That is, in addition to what original Tomcat's script support, this version:

- Builds real silent installers, without installers unzipping progress boxes, as proposed in post #222.

- Support NDP1.1sp1-KB947742-X86.exe update under windows 2000, as proposed in post #229

- Support .NET framework 3.5 SP1 as proposed in post #234 by DarkShadows.

- Support .NET framework 3.5 SP1 language packs as proposed in post #265, EDIT: but only for .NET 3.0 SP2 and .NET 2.0 SP2 (included), not for 3.5 SP1, as undelined by gr11x in the next post

To achieve this:

EDIT: Here there was a link to the modified script, but have been updated by the one in post #279.

Edited by strel
Link to comment
Share on other sites

@strel:

Version 3 of your script is working quite well now, just one point is missing: the language pack for .NET 3.5 SP1 is not listed as installed software afterwards (but for .NET 3.0 SP2):

dotnetyqba.png

After installing the language pack again all seems correctly installed:

dotnetlangyq9w.png

Also I don't see any entries for .NET 1.1 SP1, is this correct?

Thanks in advance and great work so far! :thumbup

Link to comment
Share on other sites

@strel

1. Follow the instructions described by Tomcat in the first post, steps 1 to 4, not 5

What instructions do you mean? Can you be more specific? I have read them all and I don't understand what steps are to be taken.

If I install merged .net 1.1+hotfixes and .net 2 and then dotnet3 without sp1, in windows update .net 1.1 and .net 2 do show up. They are not installed. So probably .net3 (without sp1) installation routine uninstalls .net1.1 and net.2. Something is not right with the script.

I'd like to install and ONLY these:

Net 1.1 +2 hotfixes = Net Framework 1.1 redist + NDP1.1sp1-KB867460-X86.exe + NDP1.1sp1-KB928366-X86.exe

NetFx20SP1_x86.exe = Net Framework + SP1 redistributable

NetFx30SP1_x86.exe = Net Framework + SP1 redistributable

and XPSEPSC-x86-en-US.exe as a prerequisite for NetFx30SP1_x86.exe. I don't want to install Net Framework 3.5

Link to comment
Share on other sites

Are you using merged individual installer?

I use 3 packages:

  1. .NET 1.1
  2. .NET 2.0 (created from .NET 3.5 SP1)
  3. .NET 3.0 + 3.5 (created from .NET 3.5 SP1)

The three files DNF20_de.exe, DNF35_de.exe, DNF11_de.exe are installed in that order during first login via runoncex.cmd.

My _SNM.ini:

; SNM.CMD default configuration settings.  "YES" means "if it exists".

; PROCESS MAIN PACKAGES
PROCESS_DNF1=YES
PROCESS_DNF2=YES
PROCESS_DNF3=YES
PROCESS_DNF35=YES

; HANDLING OF INDIVIDUAL FRAMEWORKS IN .NET 3.5
PROCESS_DNF35_DNF2=SEPARATE
PROCESS_DNF35_DNF3=YES
PROCESS_DNF35_DNF35=YES

; PROCESS SUBCOMPONENTS OF .NET 3.0 SP1
PROCESS_DNF3_RGBRAST=YES
PROCESS_DNF3_WINIMAGING=YES
PROCESS_DNF3_MSXML6=YES
PROCESS_DNF3_XMLPSSC=YES

; PROCESS LANGUAGE PACKS
LANGPACK1_NAME=langpack.exe
PROCESS_DNF1_LNG=YES
PROCESS_DNF2_LNG=YES
PROCESS_DNF3_LNG=YES
PROCESS_DNF35_LNG=YES

; SPECIAL
; Set MERGE_FRAMEWORKS to 12 to merge .NET 1.1 with .NET 2.0 SP1.
; Set MERGE_FRAMEWORKS to FULL to make a single complete package.
; If the temporary file appears to not go up in size anymore after several minutes,
; decrease the compression ratio. Accepted values: MED and LOW. Try MED first.

MERGE_FRAMEWORKS=
COMPRESSION_RATIO=

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...