Jump to content

Silent .NET Maker (latest update: 20080603)


Tomcat76

Recommended Posts

I must clarify I don't merge frameworks, I'm only interested in 2.0 SP2 just for my personal use, and since error seemed to be in 3.x, I'll be confident.

EDIT: See post #228 of this thread.

Edited by strel
Link to comment
Share on other sites


During SNM.cmd processing, I observed one item of concern. The Command Prompt displayed the error message: "The System could not find the file specified."

About this error when processing .NET 3.5 SP1 full redistributable, it is generated by line 438 of Tomcat's script (434 in the modified version of post #222)...

RD/Q/S "!DNF3DIR!DNF30\XPS\amd64"

... which refers to a folder resultant from .NET 3.5 package extraction process. I could check that this folder doesn't exist in .NET 3.5 SP1 full redistributable while it does in 3.5 .

So this error can be safely ignored when processing .NET 3.5 SP1 full redistributable, or avoided with a REM command at the beginning of the line. :whistle:

After a closer look to the process, I found no reason for your aproach to emerge problems. I'm using only .NET 2.0 SP2 silent installer (from 3.5 SP1 full redist) for my unattended set, with no issues, but I'll report if I'd find something wrong. Folks around, tell us your experiences.

Edited by strel
Link to comment
Share on other sites

EDIT: This solution has been integrated in Silent .NET Maker synthesized

Currently one gets a msiexec options pop-up box.

Test this (I can't, since I don't run win2k and gives me an error):

1. Install .NET 1.1 and all SP1 updates for win2k: NDP1.1sp1-KB867460-X86.exe, NDP1.1sp1-KB928366-X86.exe, NDP1.1sp1-KB947742-X86.exe

2. Now you have to edit SNM.cmd, the line 51...

		START/WAIT %%I /XP:"!TMPDIR!"

has to be replaced with...

		IF %%I==NDP1.1sp1-KB947742-X86.exe (
START/WAIT %%I /extract "!TMPDIR!"
) ELSE (
START/WAIT %%I /XP:"!TMPDIR!"
)

:thumbup

Edited by strel
Link to comment
Share on other sites

That seemed to do the trick, with one modification. I had to move

IF EXIST *.msp FOR /F %%I IN ('DIR/B *.msp') DO (ECHO Processing %%I...&START/WAIT MSIEXEC /p %%I /a "!DNF1DIR!DNF11\netfx.msi" /qb)

further down the script, as it complained about sp1 not being installed.

The (apparently working) modified section now looks like:

IF EXIST dotnetfx.exe IF "%PROCESS_DNF1%"=="YES" (
ECHO Processing .NET 1.1 installer...&MD "!DNF1DIR!DNF11"&CALL :TMPCOUNT
START/WAIT dotnetfx.exe /C /T:"!TMPDIR!"
START/WAIT MSIEXEC /a "!TMPDIR!\netfx.msi" TARGETDIR="!DNF1DIR!DNF11" /qb
IF EXIST NDP1.1*.exe FOR /F %%I IN ('DIR/B/ON NDP1.1*.exe') DO (
ECHO Processing %%I...&CALL :TMPCOUNT
START/WAIT %%I /XP:"!TMPDIR!"
FOR /F %%I IN ('DIR/B/ON "!TMPDIR!\*.msp"') DO START/WAIT MSIEXEC /p "!TMPDIR!\%%I" /a "!DNF1DIR!DNF11\netfx.msi" /qb
IF EXIST "!TMPDIR!\M*.msp" FOR /F %%A IN ('DIR/B/ON "!TMPDIR!\*.msp"') DO ECHO>>DNF1REM.TXT %%~nA
)
IF EXIST *.msp FOR /F %%I IN ('DIR/B *.msp') DO (ECHO Processing %%I...&START/WAIT MSIEXEC /p %%I /a "!DNF1DIR!DNF11\netfx.msi" /qb)
IF EXIST M*.msp FOR /F %%I IN ('DIR/B/ON M*.msp') DO (
ECHO Processing %%I...&START/WAIT MSIEXEC /p %%I /a "!DNF1DIR!DNF11\netfx.msi" /qb&ECHO>>DNF1REM.TXT %%~nI
)
ECHO>INSTALL1.CMD START/WAIT MSISTUB DNF11\netfx.msi /passive /norestart
IF EXIST DNF1REM.TXT FOR /F %%I IN (DNF1REM.TXT) DO (
COPY NUL "!DNF1DIR!DNF11\Win\Microsoft.NET\Framework\URTInstallPath\Updates\%%I\%%IUninstall.msp" >NUL
ECHO>>DNF11.REG [-HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\%%I]
)
IF EXIST %LANGPACK1_NAME% IF "%PROCESS_DNF1_LNG%"=="YES" (
ECHO Processing %LANGPACK1_NAME%...&CALL :TMPCOUNT
START/WAIT %LANGPACK1_NAME% /C /T:"!TMPDIR!"
START/WAIT MSIEXEC /a "!TMPDIR!\langpack.msi" TARGETDIR="!DNF1DIR!DNF11" /qb
ECHO>>INSTALL1.CMD DIR/B/A-D/S "%%ALLUSERSPROFILE%%"^>AUP.TXT
ECHO>>INSTALL1.CMD FOR /F "DELIMS=" %%%%I IN ^('FINDSTR/I /C:"Microsoft .NET Framework 1.1 Configuration.lnk" AUP.TXT'^) DO SET DNFC=%%%%I
ECHO>>INSTALL1.CMD FOR /F "DELIMS=" %%%%I IN ^('FINDSTR/I /C:"Microsoft .NET Framework 1.1 Wizards.lnk" AUP.TXT'^) DO SET DNFW=%%%%I
ECHO>>INSTALL1.CMD IF DEFINED DNFC DEL/Q/F "%%DNFC%%"
ECHO>>INSTALL1.CMD IF DEFINED DNFW DEL/Q/F "%%DNFW%%"
ECHO>>INSTALL1.CMD START/WAIT MSISTUB DNF11\langpack.msi /passive
FOR /F %%I IN ('DIR/B "!DNF1DIR!DNF11\Program Files\Internet Explorer\MUI"') DO IF NOT "%%I"=="0409" SET DNF11LNGSTR=%%I
IF DEFINED DNF11LNGSTR CALL :GETDNF11LNG
)
ECHO.
)

Mind you the extent of my testing so far is to check that it doesn't show on Windows Update and that the updated version of GDI+ is installed.

Link to comment
Share on other sites

"The System could not find the file specified."

About this error when processing .NET 3.5 SP1 full redistributable, it is generated by line 434 of Tomcat's script...

RD/Q/S "!DNF3DIR!DNF30\XPS\amd64"

... which refers to a folder resultant from .NET 3.5 package extraction process. I could check that this folder doesn't exist in .NET 3.5 SP1 full redistributable while it does in 3.5 .So this error can be safely ignored when processing .NET 3.5 SP1 full redistributable, or avoided with a REM command at the beginning of the line. :whistle:

Since the line in question is only removing a folder, it can be safely changed to this:

>Nul 2>&1 RD /Q /S "!DNF3DIR!DNF30\XPS\amd64"

The modified line will redirect all regular command output from the console to the Nul (black hole) device using "> Nul". It will also redirect any error output (handle 2) to the same location as regular output (handle 1) using "2>&1". This modification allows the line to execute if the script does find the folder to remove, and it allows the script to work without displaying errors if the folder is not found. B)

Edited by DarkShadows
Link to comment
Share on other sites

Hi there,

I just want to know something that is not precised on the first post. When using RogueSpear .NET Framework 2.0 silent installer, it runs "Assemblies optimizer" at the end of installation. If I make my own addon using this maker, will it run optimizer too?

TIA and cheers,

Kal

Link to comment
Share on other sites

  • 2 weeks later...

@Tomcat76

When you next update SNM.cmd, please consider making the following changes.

  1. When deleting any temp or working folder, either pre-check for the folder's existence with "IF EXIST" (which in most cases you do just that), or prepend all RD commands with ">Nul 2>&1 ". (There is also no harm in doing both approaches together.)
    As I discussed in earlier posts, one such line gives a little cause for concern (until one understands what the error message actually pertains to).
    During SNM.cmd processing, I observed one item of concern. The Command Prompt displayed the error message: "The System could not find the file specified."
    About this error when processing .NET 3.5 SP1 full redistributable, it is generated by line 434 of Tomcat's script...
    RD/Q/S "!DNF3DIR!DNF30\XPS\amd64"


    ... which refers to a folder resultant from .NET 3.5 package extraction process. I could check that this folder doesn't exist in .NET 3.5 SP1 full redistributable while it does in 3.5 .So this error can be safely ignored when processing .NET 3.5 SP1 full redistributable, or avoided with a REM command at the beginning of the line. :whistle:

    I believe strel is using a modified copy of the SNM.cmd script, because it is actually line 438 in the unmodified copy of SNM.cmd I used.
    Change Line 438 From This:
    RD/Q/S "!DNF3DIR!DNF30\XPS\amd64"


    Change Line 438 To This:

    >NUL 2>&1 RD/Q/S "!DNF3DIR!DNF30\XPS\amd64"


    The modified line will redirect all regular command output from the console to the Nul (black hole) device using "> Nul". It will also redirect any error output (handle 2) to the same location as regular output (handle 1) using "2>&1". This modification allows the line to execute if the script does find the folder to remove, and it allows the script to work without displaying errors if the folder is not found.

  2. Ensure all installations launched from inside any DNF*.exe package forcefully suppress rebooting.
    As I discussed in my earlier post, using the current (unmodified) version of SNM.cmd along with the .Net Framework v3.5 SP1 Full Redistributable download, I successfully created and installed the resulting DNF*.exe packages. I installed the packages on both Virtual PC 2007 and on a physical PC. I just recently updated the XPCD for my physical PC, but I made no changes to my RunOnceEx.cmd script, and I used the same DNF*.exe packages tested earlier. This time, when the XPCD installation completed, I noticed that Microsoft .Net Framework 3.0 Service Pack 2 had not been installed. So I rebuilt my XPCD from the ground up again by-the-numbers, reset my PC, and closely monitored the XPCD installation. I noticed the dialogs below during RunOnceEx.
    post-40573-1222759816_thumb.png
    Above, we see the Software Update Installation Wizard for one update belonging to the DNF30.exe package. (It is either WIC or XPS.)
    post-40573-1222759822_thumb.png
    As this update's install completes, it prompts the user to prevent a system reboot. If one does not check the Do not restart option before the countdown completes, Windows will reboot in the middle of installating the DNF30.exe package. This ultimately results in Microsoft .Net Framework 3.0 Service Pack 2 not being installed. (Interesting sidebar: Microsoft does not post any information whatsoever on 954550 or KB954550, much less KB954550-V5. Even a Google search will find no information about this update number.)
    post-40573-1222759827_thumb.png
    As seen above, after checking the Do not restart option before the update forces the system to reboot, will allow the DNF30.exe package installation to proceed as expected. This ultimately results in Microsoft .Net Framework 3.0 Service Pack 2 being installed correctly, although not in an unattended manner. Just to be thorough, I installed the XPCD for my physcial PC on VirtualPC 2007 and I closely monitored its progress. I saw the same dialog flash for about a half a second, but I noticed that the Do not restart option was checked. I'm using exactly the same bits to install, so it is beyond me what is so different about my physical Test PC. Perhaps one my hardware drivers is installing something that DNF30.exe needs to overwrite?
    To get to the bottom of this issue, I used 7-Zip to extract DNF30.exe, and inspected the INSTALL.CMD script, which in-turn pointed me to the lines of code below from SNM.cmd that do not use the /norestart parameter.
    Change Line 430 From This:
    ECHO>>INSTALL3.CMD START/WAIT DNF30\WIC\update\update.exe /passive


    Change Line 430 To This:

    ECHO>>INSTALL3.CMD START/WAIT DNF30\WIC\update\update.exe /passive /norestart


    Change Line 439 From This:

    ECHO>>INSTALL3.CMD START/WAIT DNF30\XPS\update\update.exe /passive


    Change Line 439 To This:

    ECHO>>INSTALL3.CMD START/WAIT DNF30\XPS\update\update.exe /passive /norestart


    I edited my own copy of SNM.cmd thusly, recreated all four DNF*.exe packages, re-integrated my XPCD, and re-installed Windows on my physical PC. Everthing installed as expected. I also recommend the change below, though I did not test this one.
    Change Line 72 From This:

    ECHO>>INSTALL1.CMD START/WAIT MSISTUB DNF11\langpack.msi /passive


    Change Line 72 To This:

    ECHO>>INSTALL1.CMD START/WAIT MSISTUB DNF11\langpack.msi /passive /norestart


So hopefully, you will add these changes in the next version.

-DS

Link to comment
Share on other sites

I use the program to merge the files, but still asking for some files (Language Packs in PT-BR Portuguese Brazilian) in Windows Update. The files are:

-Microsoft .NET Framework 3.0: Language Pack x86 (KB928416)

-Language Pack for Microsoft .NET Framework 2.0 (KB829019)

I merged the .NET Framework 1.1, the updates for .NET 1.1, Language Pack in PT-BR for .NET 1.1, .NET Framework 3.5 and the Language Pack in PT-BR for .NET 3.5.

Any ideas?

Link to comment
Share on other sites

Hi Tomcat76,

and thank you so much for this super script.

Q1:

The whole thing works to the extend that all are shown in Add/Remove programs, and no errors with applications so far.

However, the languagepack for 3.0 SP0 keeps showing on Windows Update and Microsoft Update. I have tried to reinstall the packages several times, and still no luck.

Maybe most of you guys probably never use Windows Update, maybe not language packs at all, and furthermore, this error might even be on the sites themselves.

But do any of you guys experience the same thing with your localized installations? Share your thoughts.

Method:

1) Make silent installers by using the following files by the latest script (version 20080603):

dotnetfx.exe

NDP1.1sp1-KB867460-X86.exe

NDP1.1sp1-KB928366-X86.exe

langpack.exe

dotnetfx35.exe SP0

dotnetfx35langpack_x86da.exe SP0

2) And the results was:

11.947.839 DNF11_da.exe

17.888.505 DNF20_da.exe

14.976.418 DNF30_da.exe

11.666.889 DNF35.exe

3) Integrated DNF20_da.exe by putting it in I386\SVCPACK and SVCPACK.INF

4) Integrated the rest with RunOnceEx.cmd in the following order: DNF30_da.exe, DNF35.exe, DNF11_da.exe

Q2:

The above have been tried on different computermodels, and the result is the same. But should my DNF20_da.exe not be around 40 MB, instead of 17 MB?

I use the program to merge the files, but still asking for some files (Language Packs in PT-BR Portuguese Brazilian) in Windows Update. The files are:

-Microsoft .NET Framework 3.0: Language Pack x86 (KB928416)

-Language Pack for Microsoft .NET Framework 2.0 (KB829019)

I merged the .NET Framework 1.1, the updates for .NET 1.1, Language Pack in PT-BR for .NET 1.1, .NET Framework 3.5 and the Language Pack in PT-BR for .NET 3.5.

Any ideas?

You might consider waiting just a bit, since .NET Framework 3.5 Service pack 1 is on its way. But are you sure that you have downloaded the corresponding language pack? The filename for the full package is still dotnetfx35.exe

These are together:

.NET Framework 3.5

.NET Framework 3.5 LangPack

And these are together:

.NET Framework 3.5 Service pack 1

.NET Framework 3.5 SP1 Language Pack

The language pack for SP1 is not available yet in Danish, so...

Patience is the greatest of all virtues, and a handful of patience is worth more than a bushel of brains.

Edited by Trolleri
Link to comment
Share on other sites

You might consider waiting just a bit, since .NET Framework 3.5 Service pack 1 is on its way. But are you sure that you have downloaded the corresponding language pack? The filename for the full package is still dotnetfx35.exe

I follow the links on 1st post... so i think they are correct ;)

Thankz.

Link to comment
Share on other sites

I believe strel is using a modified copy of the SNM.cmd script, because it is actually line 438 in the unmodified copy of SNM.cmd I used.

You're right, my fault, I think I was using the modified file described on post #222. Has been corrected.

Thanks.

Edited by strel
Link to comment
Share on other sites

"The System could not find the file specified."
About this error when processing .NET 3.5 SP1 full redistributable, it is generated by line 434 of Tomcat's script...

RD/Q/S "!DNF3DIR!DNF30\XPS\amd64"

... which refers to a folder resultant from .NET 3.5 package extraction process. I could check that this folder doesn't exist in .NET 3.5 SP1 full redistributable while it does in 3.5 .So this error can be safely ignored when processing .NET 3.5 SP1 full redistributable, or avoided with a REM command at the beginning of the line. :whistle:

Since the line in question is only removing a folder, it can be safely changed to this:

>Nul 2>&1 RD /Q /S "!DNF3DIR!DNF30\XPS\amd64"

The modified line will redirect all regular command output from the console to the Nul (black hole) device using "> Nul". It will also redirect any error output (handle 2) to the same location as regular output (handle 1) using "2>&1". This modification allows the line to execute if the script does find the folder to remove, and it allows the script to work without displaying errors if the folder is not found. B)

Where is this line to be found is it in the SNM.cmd file? Would it be possible for the modified one to allow this and the total silent installer maker to be uploaded here this would be awsome!!!!

TIA dudes!

Stoner81

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...