Jump to content











Photo
- - - - -

dotNet Framework 2.0 Script


  • Please log in to reply
45 replies to this topic

#1 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 22 March 2011 - 10:43 AM

.NET Framework 2.0 SP2 v6.2 Final !!!

This project is now in a Stable release.
All updated versions will be posted here.
So please always refer to this first post for downloads.


Host:----------------------> WinBuilder
Script version: --------> 6.2
Architecture:-----------> x86
Framework:-------------> .NetFx 2.0 SP2
Win Installer:-----------> MSI v4.5
FBWF Cache:-----------> 16 Mb min. - 1 Gb max.
Target System:--------> LiveXP (not yet tested on other environments)
Script Package:-------> 18.41 Mb


This version brings complete Net Framework 2.0 integration into LiveXP.
It comes embeded with Microsoft MSI Installer v4.5 and Microsoft FBWF
(File-Based Write Filter) for embeded systems. This script was built and
tested using XP SP3 source.

File-Based Write Filter

FBWF allocated Cache Size and speed depend on the CacheType.

Dynamic and Dynamic-Compressed cache-types are written to
disk as virtual memory if a writable physical disk is present at boot-time.
The maximum possible size for the allocated cache is 1GB. If no
writable physical disk is present at boot-time, a portion of free RAM
space is allocated. In this case, the allocatable cache size depends on the
amount of free system RAM, up to the 1Gb limit. The good thing with
dynamic cache types is flexibility in RAM usage as the space is shared.
RAM is seized from the system proportionally to demand. The downside
of dynamic cache types is their relatively slower speed.

For the Pre-Allocated cache-type, the maximim cache size depends on the
amount of available system RAM, up to the 1Gb limit. The required RAM is
pre-allocated at boot-time and is not shared. Therefore, that space will not be
available to the system as RAM. However, it remains the fastest cache type.

If you don't have plenty of RAM, better go for dynamic cache type.
If you have a strong processor, you can chose the dynamic-compressed cache type.
If hardware resources don't frighten you, then go for the pre-allocated cache-type.



How to use it:
  • Extract both files (dotnet2_henshaw.Script and
    dotnet2_henshaw-bin.Script) into the same projects subfolder.
    Do not rename them unless you know what you're doing.
  • Select the script ".Net Framework 2.0 SP2" in WinBuilder.
  • Build your LiveXP and run your net applications the normal way
    (i.e. just clicking on the executables or calling them from the
    command line).

Script History:

  • 21/03/2011:
  • After trying to run some of my favorite apps in LiveXP while working
    on a bussiness project, I always got those annoying nag-screens asking
    for dotNet Framework. Let me confess: I am not a dotNet lover but
    dotNet apps have fast populated the entire scene. I was simply tired of
    seeing those nag screens. So it bagan.
    Script v1.0 - Virtualized the entire netFx2 into "cmd.exe" with exclusion
    of the native assemblies. A few programs ran. Everything slowed-down.

    23/03/2011:
  • Script v2.0 - Re-scripted from scratch. No more "cmd.exe" hacking.
    Virtualized netFx2 to a stand-alone JIT-hook.
    Remade from scratch with over ten virtualization techniques. They all
    slowed down LiveXP at runtime and threw nag screens here and there!

    2011-04-19:
  • Script v3.0 - introduced the full integration approach with file
    hard-patching. Script v3 violated some forum rules, thus, was
    never uploaded.

    2011-04-20:
  • Script v3.5 - Desperately reverted to another virtualization technique
    with poor results.
    Began the dotNetRunner as a service "dnr.exe"

    2011-04-20:
  • Script v4.0 - back to full integration technique without hard-patching.
    Introduced the volatile reg-patching. Changed the dotNetRunner
    run-style.

    2011-04-21:
  • Script v4.3 - Set script dependencies. dotNet apps no longer complain.
    Sounds good !

    2011-04-22:
  • Script v5.0 - Populated dependencies. Some tweaking, tricks and
    recomendations to make things flow.
    Script v5.1 - Clean-up of unimportant entries.

    2011-05-24:
  • Script v6.0 - Fixed a bug in dotNetRunner (dnr.exe) that prevented
    dotNet to run when booting from CD.
    Embeded the Microsoft FBWF (File-Based Write Filter).

    2011-05-27:
  • Script v6.2 - Cooked-in some tweaks!
See screen-shots below: booting from ISO-file with Qemu...


Enjoy your favorite dotNet apps !!!

Henshaw.

27-May-2011 10:45 pm

Download netFx2.0 Script v6.2: DotNetFx 2.0 SP2 Script v6.2 2011-05-27
Download v6.2 Development Project: WinBuilder_LiveXP_netFx2_henshaw_2011-05-27.7z
Download v6.2 finished Target directory: Target_LiveXP_netFx2_henshaw_2011-05-27.7z
Download v6.2 finished ISO-file:LiveXP_netFx2_ISO_henshaw_2011-05-27.7z

Attached Thumbnails

  • 2011-05-28_052658.png
  • 2011-05-28_052505.png
  • 2011-05-28_154511_no_Imdisk_5.png


#2 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 22 March 2011 - 11:03 AM

Coming up soon:

dotNet 1.1 for LiveXP
dotNet 3.5 for LiveXP
dotNet 4.0 for LiveXP
dotNet_full for LiveXP

Stay tuned!

Henshaw!

#3 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 22 March 2011 - 11:32 AM

Wait a moment, please. Something went wrong with the uploaded package.

Fixing it up...

Stay tuned!

#4 MrChucong™

MrChucong™

    Member

  • Members
  • 59 posts
  • Location:Small City
  • Interests:Life Or Death
  •  
    Vietnam

Posted 22 March 2011 - 12:24 PM

i need Netframework 4.0
you can share for mePosted Image

#5 MrChucong™

MrChucong™

    Member

  • Members
  • 59 posts
  • Location:Small City
  • Interests:Life Or Death
  •  
    Vietnam

Posted 23 March 2011 - 06:51 AM

please update !Posted Image netframework 4.0 for me !

Edited by MrChucong™, 23 March 2011 - 06:54 AM.


#6 Nuno Brito

Nuno Brito

    Platinum Member

  • Team Reboot
  • 10,197 posts
  • Location:boot.wim
  • Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..
  •  
    European Union

Posted 23 March 2011 - 08:53 AM

Hi Henshaw,

Thank you for sharing, just note that the "Hello world" is not an appropriate section for placing your post.

This could go nicely under the LiveXP section or the App script section of the forum.

I will move this topic to over there.

Again, thank you for sharing you nice work.

:cheers:

#7 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 23 March 2011 - 03:31 PM

Hi there Nuno Brito!

It's OK to move the post where appropriate. I will learn to make a better use of this forum.

Back Soon!

#8 ippcup

ippcup
  • Members
  • 4 posts
  •  
    United States

Posted 24 March 2011 - 02:23 PM

Henshaw, what about running a service that requires .net 2.0? Should I change the "ImagePath" for the windows service to include cmd.exe /c? For example: "cmd.exe" /c "C:\Windows\LTSVC\LTSVC.exe"

thanks!

#9 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 24 March 2011 - 05:26 PM

Henshaw, what about running a service that requires .net 2.0? Should I change the "ImagePath" for the windows service to include cmd.exe /c? For example: "cmd.exe" /c "C:\Windows\LTSVC\LTSVC.exe"

thanks!



<I haven't tried it yet but it should work as long as the "/c" parameter is used to keep open a tunnel to the virtual dotNet file-system. I will try running some servces then evetually make some fixes.

However, good news:
After some debugging, i found and fixed what made version one of my dotNet Framework 2.0 Runner to quit unexpectedly at runtime. So I have just finished making version two and changed it from .Net2.0 to .Net2.0-SP2. Seems faster, more stable and reliable. Now writing a short tutorial for it. I will upload it later today.

Stay Tuned!

#10 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 25 March 2011 - 05:43 AM

Version 2 here!

.NET Framework 2.0 SP2 32-bit by Henshaw
********************************************************


I have repeated this porting from scratch four times, each time
with a different approach. So far, this approach seems to be the
best. I have also changed it from dotNet 2.0 to dotNet 2.0 SP2
with noticable speed gain.

Start-up time for dotNet applications will be a bit longer than normal
because I did not include the IL-NativeImages for space reasons.
These precompiled IL-libraries speed-up the live-compilation process of
net application thus reducing start-up time, but will increase the package
size to about three times.

More to that, to make a reasonable size, I had to apply some compression.

Attention:
Some applications, like nlite, will report missing dependencies-errors then quit.
This is because, such applications call some other applications which fail
to see the virtual dotNet file-system since they could not be loaded through
the "/c" parameter.

However, I'v got some work-arounds for that, but need to start the porting from
scratch once more. I will do that in version 3 of this script.

One last thing: I forgot to set its dependedcy. This script depends on the
LODR_Thinstall_Support script. So, make sure to include that in your build.

Test your apps and give feed-backs. Now going foward to open a new
topic for my dotNet 3.5 script.

Henshaw.

25-Mar-2011

Download: (Please refer to the first post for the most recent version)

Edited by Henshaw, 21 April 2011 - 09:57 AM.


#11 ippcup

ippcup
  • Members
  • 4 posts
  •  
    United States

Posted 25 March 2011 - 01:35 PM

dotnet2_henshaw.Script is 0bytes. I'm going to use the old one with the new -bin file and post my results

#12 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 25 March 2011 - 07:17 PM

Now checking to see what went wrong.

Back soon!

#13 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 25 March 2011 - 09:24 PM

Yes, version 2 upload was corrupted. Get the new link:

Download: .NET Framework 2.0 SP2 Script v2

(Please refer to the first post for the most recent version)

#14 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 28 March 2011 - 11:34 AM

After doing some testing during this weekend, I found out the following:

1. My modified cmd.exe prevented imdisk from loading in LiveXP, hence, no profiles folder.

2. dotNet framework on windows systems, stores files in a slightly different way from what compilers make dotNet applications to expect. However, the operating system, makes ajustments on-the-fly to make things work. Since that does not occur with the virtualized system, many dotNet applications thus fail even though everything was put in place as the original system.

So:

1. I wrote a small script (dotNetRunner) which will take care of such things while applications load.

2. cmd.exe will no longer be replaced. Instead, dotNet applications will be passed to "dnr.exe" (dotNetRunner) without the "/c" parameter.
Therefore, to load dotNet applications, we shall do it tis way:

dnr.exe yourApp.exe

I tried last night on about 50 dotNet applications. Most of them ran smoothly while just a few still complained. Let me investigate a bit more before I upload.

For those who downloaded versions 1 and 2, sorry. Version 3 will be up soon!

Bye!

#15 bbk

bbk

    Newbie

  • Members
  • 13 posts
  •  
    Ukraine

Posted 13 April 2011 - 01:39 PM

So, where we can download result of your latest research?

Edited by bbk, 13 April 2011 - 01:40 PM.


#16 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 15 April 2011 - 08:13 PM

I will put on the links within this weekend (at most in two days.) Sorry for making you wait so long. I was so busy at work.

Soon!

#17 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 20 April 2011 - 03:52 PM

.NET Framework 2.0 SP2 v4 is here !!!

Host:-------------------> WinBuilder
Script version: -----> 4.0
Architecture:--------> x86
Target:-----------------> LiveXP (not yet tested on other environments)
Script Package:-----> 16.90 Mb


This version brings tight Net Framework 2.0 integration into LiveXP
with high application compatibility.

How to use it:

  • Extract both files (dotnet2_henshaw.Script and
    dotnet2_henshaw-bin.Script) into the same projects subfolder.
    Do not rename them unless you know what you're doing.
  • Select the script ".Net Framework 2.0 SP2" in WinBuilder.
  • Build your LiveXP and run your net applications the normal way
    (i.e. just clicking on the executables or calling them from the
    command line).
Enjoy your favorite dotNet apps !!!

Henshaw. 20-April-2011

Download: (Please refer to the first post for the most recent version)

#18 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 20 April 2011 - 04:09 PM

So, where we can download result of your latest research?


I did not post version 3 because to make things work I had to
do some patching, thereby violating some forum rules. So I took
some more time to put down version 4. Pick it from the link above.

Have a nice time!

#19 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 21 April 2011 - 03:31 AM

Version 3 was never posted. To get a complete history of all scripts and download
all versions, I am setting up a script repository at my personal site (www.hoat.biz)

Version 4.0 has been updated to v4.3 !!! Works with "Recommended" and "Complete" builds.
I am still working on it to make it compatible with minimal builds.

Download: (Please refer to the first post for the most recent version)

#20 Nuno Brito

Nuno Brito

    Platinum Member

  • Team Reboot
  • 10,197 posts
  • Location:boot.wim
  • Interests:I'm just a quiet simple person with a very quiet simple life living one day at a time..
  •  
    European Union

Posted 22 April 2011 - 09:18 AM

Thank you for the update!

:)

#21 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 22 April 2011 - 09:40 AM

Here are my latest findings that will go to v5 late today:

dotNet 2.0 SP2 script depends on IE_06.script, xpe-pnp-aio.script and xpe_directx.script.
For .Net Framework capable builds, I recommend XP SP3.
Also, the following list of files must be present for dotNet apps to run:


Require_FileQ,hhctrl.ocx

Require_FileQ,mscms.dll

Require_File,ntoskrnl.exe

Require_File,bootvid.dll

Require_File,hal.dll

require_file,cdfview.dll

require_file,cscdll.dll 

require_file,efsadu.dll

require_file,inetcomm.dll

require_file,linkinfo.dll

require_file,mobsync.dll

require_file,mshtml.dll

require_file,msrating.dll

require_file,mssign32.dll

require_file,printui.dll

require_file,query.dll

require_file,utildll.dll

require_file,w32topl.dll

require_file,winhttp.dll

require_file,cic.dll

require_file,drmclien.dll

require_file,tlntsvr.exe

require_file,ntlsapi.dll

require_file,adsnds.dll

require_file,wmidx.dll

require_file,fde.dll

require_file,adsnw.dll

require_file,hlink.dll

require_file,imgutil.dll

require_file,msoert2.dll

require_file,sl_anet.acm

require_file,grpconv.exe

Require_File,ntprint.inf,%Source_Sys%,%Target_Win%\inf

Require_File,ntprint.dll

Require_File,winhlp32.exe,%Source_Sys%,%Target_Win%

Require_File,winhelp.exe,%Source_Sys%,%Target_Win%

Require_File,hh.exe,%Source_Sys%,%Target_Win%

Require_File,gdiplus.dll,%Source_Sys%\ASMS\10\MSFT\WINDOWS\GDIPLUS,%Target_Sys%


Back later!

#22 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 22 April 2011 - 10:48 AM

See script version 5 in action...
Posted Image

Download: (Please refer to the first post for the most recent version)

#23 izx

izx
  • Members
  • 3 posts

Posted 13 May 2011 - 09:51 AM

I can't get the latest version to work (.NET 2.0 apps throw initialization errors). Strangely, the same thing happens in your pre-built ISO with nLite and H7....could there be something wrong with the uploads?

#24 Henshaw

Henshaw

    Member

  • Advanced user
  • 66 posts
  •  
    Italy

Posted 13 May 2011 - 11:18 AM

As I stated in the "Known Limitations" section, The problem should obviously
be a write error to the system disk. dotNet needs a writable system disk.

You have to run this LiveXP project from a writable medium (like USB). I posted the ISO
file and all other packages for reference purposes only because I had little
time to fix the write error when booting from Qemu or from CD.

I will find some time within this week to fix and update the script to v6.

For the moment:

To use the "Target" folder to create a bootable USB, use PeToUSB.exe

or

To use the ISO file to create a bootable USB, get UltraISO v9.3.x:
- plug in your USB drive to the computer
- open the ISO file with UltraISO
- goto menu "Bootable==>Write Disk Image..."
- select your USB drive from the "Disk Drive" dropbox
- select Write Method: USB-HDD+
- "Format" the drive
- "Write" to burn the drive
- when finished, before you pull out the drive, open it and rename
the "i386" folder to "minint" (all lower-case letters)
- your drive is now ready.

You will thus obtain a fully functional bootable dotNet2 LiveXP USB drive.

Let me know if it still complains.

In touch!

#25 izx

izx
  • Members
  • 3 posts

Posted 15 May 2011 - 06:18 AM

As I stated in the "Known Limitations" section, The problem should obviously
be a write error to the system disk. dotNet needs a writable system disk.


Thanks for the quick reply, Henshaw! I build my ISOs with FBWF enabled, so I didn't check if your ISO was read-only. I just checked and .NET 2.0 apps will not run on my ISO with a 128MB FBWF (max possible) writable system drive; does it have to be larger?

Also, the notes say that MSI v4.5 is included, but I was not able to run .msi files (I generally include either the RegFactory installer or the separate KB-based installer tweak to enable this functionality).

Thanks!

Posted Image