Microsoft .NET Framework 3.0 x86 (DOTNET)

Windows 2000 fixes and solutions for apps

Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Fri Dec 17, 2010 2:41 pm

Microsoft .NET Framework 3.0 Redistributable Package (DOTNET)

Download the full version from here:
http://www.microsoft.com/downloads/en/d ... structions
2. Click the Download button on this page to start the download
To download the full redistributable package, rather than the bootstrapper, click the architecture you need below to start the download:


Filename: dotnetfx3.exe
Version: 3.0.04506.30
Filesize: 50.3 MB (52,770,576 bytes)
MD5 sum: 7b26435437e8d779ff0084d4ea96d15a

Running dotnetfx3.exe produces this error:
Image

Ran dotnetfx3.exe again with Sysinternals File Monitor program to see if I could glean any more information:
Image

File Monitor showed that it was writing to some files in my user account's Temp directory. In fact there were 4 related files in:
C:\Documents and Settings\Administrator\Local Settings\Temp
  • dd_depcheckdotnetfx30.txt
  • dd_dotnetfx3error.txt
  • dd_dotnetfx3install.txt
  • uxeventlog.txt

dd_depcheckdotnetfx30.txt
[12/23/10,02:42:31] Microsoft .NET Framework 3.0 (STD) is already installed
[12/23/10,02:42:31] Entering ReadCheckTerms
[12/23/10,02:42:31] Leaving ReadCheckTerms, result: 1
[12/23/10,02:42:31] Entering CMSIProductCheck::Check
[12/23/10,02:42:31] Initialized properly: 1
RequirementsMet: 0
AtLeastOneProductInstalled: 0
AtLeastOneFeatureInstalled: 0
AllProductsInstalled: 0
AllFeaturesInstalled: 0
AllFeaturesForAllProductsInstalled: 0
[12/23/10,02:42:31] Leaving CMSIProductCheck::Check

[12/23/10,02:42:31] Microsoft .NET Framework 3.0 x86
[12/23/10,02:42:31] This component uses the RegDwordCheck version check method. It will compare a DWORD against registry data on your machine.
[12/23/10,02:42:31] Registry key being interrogated: HKLM,SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup; Value: InstallSuccess; Version: 1.
[12/23/10,02:42:31] Version on user's machine: 0.
[12/23/10,02:42:31] Version to be installed: 1.

[12/23/10,02:42:31] Installation Summary
[12/23/10,02:42:31] ====================
[12/23/10,02:42:31] TailorListForSetup()
<snip>
[12/23/10,02:42:31] Microsoft .NET Framework 3.0 (STD) is already installed Component to be removed from installation list because it is marked "not to be installed".
<snip>
[12/23/10,02:42:31] Microsoft .NET Framework 3.0 x86 Component to be removed from list as it does not match requested set.Component to be removed from installation list because it is marked "not to be installed".
<snip>
[12/23/10,02:42:31] Components to be installed:
[12/23/10,02:42:31]
[12/23/10,02:42:31] ===========================


dd_dotnetfx3error.txt
[12/23/10,02:42:41] VS Scenario: [2] CSupportedPlatformCheck failed : Microsoft .NET Framework 3.0 x86 cannot be installed on this Operating System.
You must install Windows XP or later, and rerun setup.
[12/23/10,02:42:41] VS Scenario: [2] Failed to pass the Warnings/Blocks checks in CVSScenario::Start()


dd_dotnetfx3install.txt
[12/23/10,02:42:38] Setup.exe: StartUIManager()
[12/23/10,02:42:38] vs70uimgr: Entering RunScenario() method.
[12/23/10,02:42:38] vs70uimgr: CUIMgr::RunScenario(): Starting the active scenario
[12/23/10,02:42:38] VS Scenario: Validating system requirements
[12/23/10,02:42:38] Setup_Blocked: CSupportedPlatformCheck
[12/23/10,02:42:41] Setup.exe: AddGlobalCustomProperty
[12/23/10,02:42:41] Setup.exe: AddGlobalCustomProperty
[12/23/10,02:42:41] VS Scenario: ***ERRORLOG EVENT*** : CSupportedPlatformCheck failed : Microsoft .NET Framework 3.0 x86 cannot be installed on this Operating System.
You must install Windows XP or later, and rerun setup.
[12/23/10,02:42:41] Setup.exe: AddGlobalCustomProperty
[12/23/10,02:42:41] VS Scenario: ***ERRORLOG EVENT*** : Failed to pass the Warnings/Blocks checks in CVSScenario::Start()
[12/23/10,02:42:41] vs70uimgr: CUIMgr::RunScenario(): Start() returned canceled or FAILED(hr)


uxeventlog.txt
[12/23/10,02:42:38] Setup_Blocked: CSupportedPlatformCheck


Thanks to adun and BlackWingCat for their pioneering work: viewtopic.php?f=4&t=510
Last edited by justjohnny on Wed Dec 22, 2010 3:48 pm, edited 1 time in total.
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Fri Dec 17, 2010 3:09 pm

Run dotnetfx3.exe again and pay attention to the "To Directory:":
Image

Wait for this error to occur:
Image
but do NOT press "OK".

Launch "Windows Explorer" and create a new directory in C:\ like dotnet30. Browse to that directory you saw in the "To Directory:" line, for me it was C:\8f1c37bb2428164518effdc10a087c74. Now click on one of the files, press Ctrl + A to highlight all the files then hold the "Ctrl" key and click on the "$shtdwn$.req" file:
Image
Now while still holding down the Ctrl key click and hold on any highlighted file and drag to C:\dotnet30 when you reach C:\dotnet30 don't let go of the Ctrl key, just let go of the mouse click. As the files begin to copy over release the Ctrl key. When the file copying has completed you can now click OK on that error box.

I browsed to C:\dotnet30 and pressed F3 to do a search for CSupportedPlatformCheck:
Image
and one file was found:
  • vsscenario.dll

I also did a search for Win2k:
Image
no results were found, I need a better search tool!! Open up C:\dotnet30\baseline.dat in Notepad:
Image
notice the line:
InstallOnWin2k=1

Also notice how it belongs to a "block" of code and that the title of that block is called:
[gencomp128]


Open up C:\dotnet30\LocData.ini in Notepad and cross reference the names of the blocks. E.g. the next search for Win2k in baseline.dat occurs in this block:
[gencomp6]
BlockorWarn=1
CleanCost=0
CommandLine=blocker.exe
ComponentType=1
DetectKey=HKLM,System\CurrentControlSet\Control\Windows
DetectKeyVal=CSDVersion
DetectKeyValData=512
EncryptionOpt=0
EstInstallTime=0
Executable=sp.exe
GFN=GFN_MID Windows XP SP2
IgnoreLaterVersions=0
InstallOnFutureNT=0
InstallOnNetServer=0
InstallOnWin2k=0
InstallOnWinNT4=0
InstallOnWinXP=1
InstallOnx86=1
LangSensitive=optional
moduleid=DE5AC4FC-7307-4ac7-B683-9F4E324A9BB8
Reboot=0
RebootLaterOk=0
ReturnType=IeReturnCheck
TextLink=#513
version guid=4E041A7D-5234-471b-90D5-75E994D46197
version string=2.0
VersionCheck=RegDwordCheck
InstallOnAMD64=0
InstallOnIA64=0


Now do a search for [gencomp6] in LocData.ini shows this:
[gencomp6]
ComponentName=Windows XP Service Pack 2 Update Information


Hmm, WinXP SP2 won't need to be installed onto a Win2K machine so better leave InstallOnWin2k set to 0 :lol:
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Fri Dec 17, 2010 3:47 pm

Here are all the results for a search for Win2K in the baseline.dat(quote box) file followed by the cross reference in LocData.ini(code box) file:
  • [gencomp128]
    GFN=GFN_MID RED Platform Block
    InstallOnWin2k=1
    InstallOnWinXP=1

    Code: Select all
    [gencomp128]
    ComponentName=Only x86 platforms are supported
  • [gencomp6]
    GFN=GFN_MID Windows XP SP2
    InstallOnWin2k=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp6]
    ComponentName=Windows XP Service Pack 2 Update Information
  • [gencomp8]
    GFN=GFN_MID Windows 2003 Server Service Pack 1
    InstallOnWin2k=0
    InstallOnWinXP=0

    Code: Select all
    [gencomp8]
    ComponentName=Windows 2003 Server Service Pack 1 Update Information
  • [gencomp90]
    GFN=GFN_MID Windows Installer 3.0
    InstallOnWin2k=1
    InstallOnWinXP=0

    Code: Select all
    [gencomp90]
    ComponentName=Microsoft Windows Installer 3.0
  • [gencomp126]
    GFN=GFN_MID WAP Web Block
    InstallOnWin2K=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp126]
    ComponentName=Microsoft .NET Framework 3.0 (STD) is already installed
  • [gencomp112]
    GFN=GFN_MID WinWS Block
    InstallOnWin2k=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp112]
    ComponentName=Please uninstall Windows Workflow Foundation before installing this product
  • [gencomp97]
    GFN=GFN_MID DirectX
    InstallOnWin2k=1
    InstallOnWinXP=1

    Code: Select all
    [gencomp97]
    ComponentName=Microsoft DirectX 9.0
  • [gencomp136,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID RGB Rast
    InstallOnWin2k=1
    InstallOnWinXP=1

    Code: Select all
    [gencomp136,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    ComponentName=RGB Rast
  • [gencomp70,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID Microsoft XML
    InstallOnWin2k=1
    InstallOnWinXP=1

    Code: Select all
    [gencomp70,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    ComponentName=MSXML 6.0 Parser
  • [gencomp209]
    GFN=GFN_MID WIC Installer
    InstallOnWin2k=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp209]
    ComponentName=WIC Installer
  • [gencomp18,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID Framework
    InstallOnWin2k=1
    InstallOnWinXP=1

    Code: Select all
    [gencomp18,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    ComponentName=Microsoft .NET Framework 2.0
  • [gencomp211]
    GFN=GFN_MID XPSEPSC x86 Installer
    InstallOnWin2k=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp211]
    ComponentName=XPSEPSC x86 Installer
  • [gencomp98,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID Indigo
    InstallOnWin2k=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp98,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    ComponentName=Windows Communication Foundation
  • [gencomp101,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID WPF
    InstallOnWin2k=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp101,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    ComponentName=Windows Presentation Foundation
  • [gencomp109,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID WinWS
    InstallOnWin2k=0
    InstallOnWinXP=1

    Code: Select all
    [gencomp109,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    ComponentName=Windows Workflow Foundation
  • [vs_setup.dll]
    GFN=GFN_Client_MSI
    InstallOnWinXP=1
    InstallOnWin2k=0

    Code: Select all
    [vs_setup.dll]
    ComponentName=Microsoft .NET Framework 3.0 x86

The rest were language files, e.g.:
[gencomp133]
GFN=GFN_MID Microsoft .NET Framework 3.0 Language Pack - JPN
InstallOnWin2k=1
InstallOnWinXP=1

Code: Select all
[gencomp133]
ComponentName=Microsoft .NET Framework 3.0 Language Pack - JPN


All the language files were set to InstallOnWin2k=1.
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Fri Dec 17, 2010 4:04 pm

This is the list of InstallOnWin2k=1 excluding the language files:
  • [gencomp128]
    GFN=GFN_MID RED Platform Block
    ComponentName=Only x86 platforms are supported
  • [gencomp90]
    GFN=GFN_MID Windows Installer 3.0
    ComponentName=Microsoft Windows Installer 3.0
  • [gencomp97]
    GFN=GFN_MID DirectX
    ComponentName=Microsoft DirectX 9.0
  • [gencomp136,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID RGB Rast
    ComponentName=RGB Rast
  • [gencomp70,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID Microsoft XML
    ComponentName=MSXML 6.0 Parser
  • [gencomp18,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID Framework
    ComponentName=Microsoft .NET Framework 2.0

This is the list of InstallOnWin2k=0:
  • [gencomp6]
    GFN=GFN_MID Windows XP SP2
    ComponentName=Windows XP Service Pack 2 Update Information
  • [gencomp8]
    GFN=GFN_MID Windows 2003 Server Service Pack 1
    ComponentName=Windows 2003 Server Service Pack 1 Update Information
  • [gencomp126]
    GFN=GFN_MID WAP Web Block
    ComponentName=Microsoft .NET Framework 3.0 (STD) is already installed
  • [gencomp112]
    GFN=GFN_MID WinWS Block
    ComponentName=Please uninstall Windows Workflow Foundation before installing this product
  • [gencomp209]
    GFN=GFN_MID WIC Installer
    ComponentName=WIC Installer
  • [gencomp211]
    GFN=GFN_MID XPSEPSC x86 Installer
    ComponentName=XPSEPSC x86 Installer
  • [gencomp98,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID Indigo
    ComponentName=Windows Communication Foundation
  • [gencomp101,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID WPF
    ComponentName=Windows Presentation Foundation
  • [gencomp109,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID WinWS
    ComponentName=Windows Workflow Foundation
  • [vs_setup.dll]
    GFN=GFN_Client_MSI
    ComponentName=Microsoft .NET Framework 3.0 x86
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Tue Dec 21, 2010 12:05 am

This is the list of InstallOnWin2k=0 that should stay set to =0:
  • [gencomp6]
    GFN=GFN_MID Windows XP SP2
    ComponentName=Windows XP Service Pack 2 Update Information
  • [gencomp8]
    GFN=GFN_MID Windows 2003 Server Service Pack 1
    ComponentName=Windows 2003 Server Service Pack 1 Update Information


This is the list of InstallOnWin2k=0 that should be CHANGED(edit C:\dotnet30\baseline.dat in Notepad) to InstallOnWin2k=1:
  • [gencomp126]
    GFN=GFN_MID WAP Web Block
    ComponentName=Microsoft .NET Framework 3.0 (STD) is already installed
    Info: [0]
  • [gencomp112]
    GFN=GFN_MID WinWS Block
    ComponentName=Please uninstall Windows Workflow Foundation before installing this product
    Info: [1]
  • [gencomp209]
    GFN=GFN_MID WIC Installer
    ComponentName=WIC Installer
    Info: [2]
  • [gencomp211]
    GFN=GFN_MID XPSEPSC x86 Installer
    ComponentName=XPSEPSC x86 Installer
    Info: [3]
  • [gencomp98,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID Indigo
    ComponentName=Windows Communication Foundation
    Info: [4]
  • [gencomp101,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID WPF
    ComponentName=Windows Presentation Foundation
    Info: [5]
  • [gencomp109,{12CDA52C-7A8F-4785-8A22-53C87393FEE0}]
    GFN=GFN_MID WinWS
    ComponentName=Windows Workflow Foundation
    Info: [6]
  • [vs_setup.dll]
    GFN=GFN_Client_MSI
    ComponentName=Microsoft .NET Framework 3.0 x86
    Info: [7]

Info:
[0] - I can't find any information on this component.
[1] - http://en.wikipedia.org/wiki/Windows_Wo ... Foundation
Workflow Foundation Versions
Workflow Foundation was first released in Version 3 of the .NET Framework, and primarily uses the System.Workflow.Activities, System.Workflow.ComponentModel, and System.Workflow.Runtime namespaces. Workflows in version 3 were created using either the Sequential model (in which activities executed in order, with the completion of one activity leading to the next), or the State Machine model (in which activities executed in response to external events).

[2] - http://en.wikipedia.org/wiki/Windows_Imaging_Component
The Windows Imaging Component (WIC) is a Component Object Model based imaging codec framework introduced in Windows Vista and Windows XP Service Pack 3 for working with and processing digital images and image metadata.

Additionally, Windows Presentation Foundation applications also automatically support the installed image codecs.

By writing a codec once for WIC, developers can get system-wide support for that graphics file format in all applications that use WIC, .NET 3.x or WPF.

Starting with Windows 7, Windows Media Center (available on Windows 7 Home Premium and above) is WIC-enabled. The GDI+ graphic library, used by many native application and underneath .NET 2's System.Drawing, is also built on top of WIC, although GDI+ will not load 3rd-party or external codecs.

WIC is also available for Windows XP as a standalone download or as part of .NET Framework 3.0.[7] A PowerToy for Windows XP from Microsoft, known as Photo Info, which allows viewing and editing image metadata from Windows Explorer, also uses WIC.

[3] - http://social.msdn.microsoft.com/forums ... 9907712f0/
These should install all the prerequisites for you (including XPSEPSC).

If you want to download XPSEPSC specific package you can get the x86 package here http://go.microsoft.com/fwlink/?LinkId=96332 .

http://www.microsoft.com/whdc/device/pr ... edist.mspx
Windows Vista provides three print driver architecture models that can be used by driver developers to create customized print drivers for print devices. These architecture models are Unidrv, for PCL devices, PScript5 for PostScript devices, and XPSDrv, for drivers or devices that process the XPS document format.

Redistribution of Microsoft XPSDrv Components
The XPSDrv print driver architecture enables high quality, high performance printing on the Windows platform. The XPSDrv architecture is supported on Windows XP SP2 and later releases. Driver developers who author and ship XPSDrv print drivers are required to redistribute Microsoft system components to ensure the print drivers function properly on supported Windows operating systems prior to Windows Vista. In addition developers must follow the proper setup guidelines to ensure proper installation of XPSDrv print drivers and compatibility with the Windows client/server printing architecture.

To enable the functionality of XPSDrv print drivers on Windows XP SP2 and Windows Server 2003 operating systems, driver developers must redistribute the following components according to the license terms outlined by each.

XPSDrv Redist Package
The XPSDrv Redist Package (XPSEPSC) contains the system and driver components that enable the XPSDrv print drivers to be installed and to enable the XPSDrv filter pipeline component to function. The XPSEPSC will be redistributed via a executable package (exe). You can access the XPSEPSC package and redistribution agreement through the Microsoft Connect site, under the 'Windows Vista XPSDrv Driver Redistribution' program. See https://connect.microsoft.com for more information.

[4] - http://en.wikipedia.org/wiki/Windows_Co ... Foundation
The Windows Communication Foundation (or WCF) is an application programming interface (API) in the .NET Framework for building connected, service-oriented applications.

[5] - http://en.wikipedia.org/wiki/Windows_Pr ... Foundation
Developed by Microsoft, the Windows Presentation Foundation (or WPF) is a graphical subsystem for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0. Rather than relying on the older GDI subsystem, WPF utilizes DirectX.

WPF runtime libraries are included with all versions of Windows since Windows Vista and Windows Server 2008. Users of Windows XP SP2/SP3 and Windows Server 2003 can optionally install the necessary libraries.

WPF has released 4 major versions to date: WPF 3.0 (Nov 2006), WPF 3.5 (Nov 2007), WPF 3.5sp1 (Aug 2008), and WPF 4 (April 2010).

Microsoft Silverlight utilizes WPF to provide embedded web controls comparable to Adobe Flash, but with more focus on a UI object model and less on animation. 3D runtime rendering is unsupported in Silverlight, but available to embedded WPF applications.

[6] - See Info [1].
[7] - This is the Microsoft .NET Framework 3.0 x86 itself.
Last edited by justjohnny on Tue Dec 21, 2010 12:25 am, edited 1 time in total.
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Tue Dec 21, 2010 12:12 am

Microsoft .NET Framework 3.0 Stack:
Image

Source: http://en.wikipedia.org/wiki/Windows_Co ... Foundation
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Tue Dec 21, 2010 12:47 am

CSupportedPlatformCheck

This is the file which is currently blocking Microsoft .NET Framework 3.0 x86 from installing onto Windows 2000:
Filename: vsscenario.dll
Description: VS Setup Baseline Scenario
Product Name: Microsoft® Visual Studio® 2005
Version: 8.0.4506.30
Filesize: 797 KB (816,128 bytes)
Modified: Sunday, 29 October 2006, 11:18:12 PM
PEiD: Microsoft Visual C++ 8.0 DLL Method2
MD5 sum: 5a71c8d0786b1417286b39704b5655d1

Side note: PEiD can be downloaded from here: http://www.peid.info/

vsscenario.dll has a function called GetOSInfo() which assigns your OS a given number. The pseudocode of that function looks like this:
Code: Select all
GetOSInfo()
{
int osnumber = 12;

   if (Win 3.1) osnumber = 11;
   if (Win NT) osnumber = 12 or 1 or 4;
   if (Win 2k) osnumber = 5;
   if (Win .NET) osnumber = 10;
   if (Win XP) osnumber = 9;
   if (Win NT Next) osnumber = 8;
   if (Win 98 Gold) osnumber = 2;
   if (Win 98 Second Edition) osnumber = 3;
   if (Win 95) osnumber = 0;
   if (Win Millenium) osnumber = 6;

return osnumber;
}


CSupportedPlatformCheck is a class which is checking to see which Operating System you are running and then either blocks the install or allows the install to continue. The pseudocode looks like this:
Code: Select all
CSupportedPlatformCheck::Execute(void)
{
int osnum = GetOSInfo();
// if (Win 2k) osnumber = 5;
// if (Win XP) osnumber = 9;


   if ( osnum && osnum != 2 && osnum != 3 && osnum != 6 && osnum != 7 && osnum != 4 && osnum != 5 )
   // block install
<snip>
}
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Tue Dec 21, 2010 2:52 am

Download and install a hex editor with a disassembler built in. I recommend McAfee FileInsight:
http://www.mcafee.com/us/downloads/free ... sight.aspx
https://blogs.mcafee.com/mcafee-labs/ne ... ileinsight
For plugins: http://www.rnicrosoft.net/

When you first launch FileInsight click on "Disa..." which is located on the bottom left, this toggles the viewing the Disassembly window.

Click the Home menu, click Open, browse to vsscenario.dll click it and click the Open button.

Click the Search menu, click Find, type or paste in:
0xE888CC0200
and click "Find Next".

Click on the E8 that is in the boxed area:
Image

Now look in the Disassembly window:
Image

This disassembly:
cmp eax,ebx
jz loc_60
cmp eax,0x2
jz loc_60
cmp eax,0x3
jz loc_60
cmp eax,0x6
jz loc_60
cmp eax,0x7
jz loc_60
cmp eax,0x4
jz loc_60
cmp eax,0x5
jz loc_60

maps to the pseudocode in CSupportedPlatformCheck::Execute(void)
Code: Select all
   if ( osnum && osnum != 2 && osnum != 3 && osnum != 6 && osnum != 7 && osnum != 4 && osnum != 5 )
   // block install

which maps to this hexadecimal(inside the red brackets):
Image

Locate the line at address:
0003A0C0
which begins with this:
Code: Select all
83 F8 05

^^ Just left of the closing red bracket. Now click on the "5" and then type in 4 on your keyboard so that it now looks like this:
Image
83 F8 04


Click the Home menu then click the Save button. Now exit FileInsight.
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Tue Dec 21, 2010 9:55 am

After double-clicking on C:\dotnet30\setup.exe I get to this screen:
Image

As soon as I tick either:
"I have read and ACCEPT the terms of the License Agreement"
or
"I DO NOT ACCEPT the terms of the License Agreement"
the setup program stops responding and consumes 99-100% of the CPU.

After killing setup.exe these are the log files in my Temp directory:
Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\dd_depcheckdotnetfx30.txt
Pastebin: http://pastebin.com/SjB6ynb7
Sendspace: http://www.sendspace.com/file/5wttxp
[12/21/10,20:36:22] Microsoft .NET Framework 3.0 (STD) is already installed
[12/21/10,20:36:22] Entering ReadCheckTerms
[12/21/10,20:36:22] Leaving ReadCheckTerms, result: 1
[12/21/10,20:36:22] Entering CMSIProductCheck::Check
[12/21/10,20:36:22] Initialized properly: 1
RequirementsMet: 0
AtLeastOneProductInstalled: 0
AtLeastOneFeatureInstalled: 0
AllProductsInstalled: 0
AllFeaturesInstalled: 0
AllFeaturesForAllProductsInstalled: 0
[12/21/10,20:36:22] Leaving CMSIProductCheck::Check

[12/21/10,20:36:22] Microsoft .NET Framework 3.0 x86
[12/21/10,20:36:22] This component uses the RegDwordCheck version check method. It will compare a DWORD against registry data on your machine.
[12/21/10,20:36:22] Registry key being interrogated: HKLM,SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup; Value: InstallSuccess; Version: 1.
[12/21/10,20:36:22] Version on user's machine: 0.
[12/21/10,20:36:22] Version to be installed: 1.

[12/21/10,20:36:22] Installation Summary
[12/21/10,20:36:22] ====================
[12/21/10,20:36:22] TailorListForSetup()
<snip>
[12/21/10,20:36:22] Microsoft .NET Framework 3.0 (STD) is already installed Component to be removed from installation list because a later version is on the machine.
<snip>
[12/21/10,20:36:22] Microsoft .NET Framework 3.0 x86 Component to be removed from list as it does not match requested set.
<snip>
[12/21/10,20:36:22] Components to be installed:
[12/21/10,20:36:22]
[12/21/10,20:36:22] ===========================


Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\dd_dotnetfx3error.txt
Pastebin: (empty file)
Sendspace: (empty file)

Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\dd_dotnetfx3install.txt
Pastebin: http://pastebin.com/zDEptWGZ
Sendspace: http://www.sendspace.com/file/2x9dc4
[12/21/10,20:36:30] Setup.exe: StartUIManager()
[12/21/10,20:36:30] vs70uimgr: Entering RunScenario() method.
[12/21/10,20:36:30] vs70uimgr: CUIMgr::RunScenario(): Starting the active scenario
[12/21/10,20:36:30] VS Scenario: Validating system requirements
[12/21/10,20:36:30] VS Scenario: Running warn and block checks
[12/21/10,20:36:31] Setup.exe: MoveLoadProgress()


Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\uxeventlog.txt
Pastebin: http://pastebin.com/XUL2STwd
Sendspace: http://www.sendspace.com/file/n6atn5
[12/21/10,20:36:28] WebInstall: 0x0
[12/21/10,20:36:34] EULA_Accept: 0x0
Last edited by justjohnny on Wed Dec 22, 2010 4:17 pm, edited 2 times in total.
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Tue Dec 21, 2010 10:17 am

justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Tue Dec 21, 2010 10:18 am

Are there any other tools I can use to work out why setup.exe is locking-up/not-responding?
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Wed Dec 22, 2010 10:20 am

To make sure I hadn't damaged the install files by making the changes that I did, I copied over C:\dotnet30 to a Windows XP machine and ran setup.exe. As soon as I ticked:
"I have read and ACCEPT the terms of the License Agreement" the "Install >" button became ungreyed(on Win2K the button would not ungrey and the process would consume all the CPU) and I could click it which minimised the window to the taskbar icons near the clock. After double-clicking on it, it restored and was installing:
Image

I cancelled the Setup and then profiled it in Dependency Walker, here are the session files on Windows XP:
dotnet30_setup_exe_WinXP.dwi

Profiled versions(after clicking "Install >", the window minimised, after restoring it and seeing that it was installing I killed setup.exe in Task Manager):
dotnet30_setup_exe_profiled_WinXP.dwi
dotnet30_setup_exe_NGEN_exe_profiled_WinXP.dwi
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Wed Dec 22, 2010 3:11 pm

I decided to try something different. I deleted all the files in C:\dotnet30, ran dotnetfx3.exe, copied across the files to C:\dotnet30, edited baseline.dat and then edited vsscenario.dll in a hex editor. But this time rather than change this CSupportedPlatformCheck::Execute(void) class method function I decided to edit the int GetOSInfo() function to return the same result for Win 2k as Win XP.

Initially int GetOSInfo() would return:
if (Win 2k) osnumber = 5;
if (Win XP) osnumber = 9;

I modified it so that:
if (Win 2k) osnumber = 9;
if (Win XP) osnumber = 9;

In FileInsight do a search for:
0x6A0558394504754A
Image

Click on the 6A in the boxed area. If you now look at the Disassembly window:
Image
this assembly
push byte 0x5

which maps to this hexadecimal:
6A 05

is the int GetOSInfo() function giving Win 2k a value of 5.

On the line with address:
00066EA0
which begins with this:
Code: Select all
EB 6D 6A 05

Now click on the "5" and then type in 9 on your keyboard so that it now looks like this:
Image
EB 6D 6A 09


Click the Home menu then click the Save button. Now exit FileInsight.
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Wed Dec 22, 2010 3:25 pm

This time when running setup.exe, as it begins to load:
Image

I got this error:
Image

After clicking OK these are the log files in my Temp directory:
Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\dd_depcheckdotnetfx30.txt
Pastebin: http://pastebin.com/XJEw47W5
Sendspace: http://www.sendspace.com/file/2kzxfh
[12/23/10,02:12:03] Microsoft .NET Framework 3.0 (STD) is already installed
[12/23/10,02:12:03] Entering ReadCheckTerms
[12/23/10,02:12:03] Leaving ReadCheckTerms, result: 1
[12/23/10,02:12:03] Entering CMSIProductCheck::Check
[12/23/10,02:12:03] Initialized properly: 1
RequirementsMet: 0
AtLeastOneProductInstalled: 0
AtLeastOneFeatureInstalled: 0
AllProductsInstalled: 0
AllFeaturesInstalled: 0
AllFeaturesForAllProductsInstalled: 0
[12/23/10,02:12:03] Leaving CMSIProductCheck::Check

[12/23/10,02:12:03] Microsoft .NET Framework 3.0 x86
[12/23/10,02:12:03] This component uses the RegDwordCheck version check method. It will compare a DWORD against registry data on your machine.
[12/23/10,02:12:03] Registry key being interrogated: HKLM,SOFTWARE\Microsoft\NET Framework Setup\NDP\v3.0\Setup; Value: InstallSuccess; Version: 1.
[12/23/10,02:12:03] Version on user's machine: 0.
[12/23/10,02:12:03] Version to be installed: 1.

[12/23/10,02:12:04] Installation Summary
[12/23/10,02:12:04] ====================
[12/23/10,02:12:04] TailorListForSetup()
<snip>
[12/23/10,02:12:04] Microsoft .NET Framework 3.0 (STD) is already installed Component to be removed from installation list because a later version is on the machine.
<snip>
[12/23/10,02:12:04] Microsoft .NET Framework 3.0 x86 Component to be removed from list as it does not match requested set.
<snip>
[12/23/10,02:12:04] Components to be installed:
[12/23/10,02:12:04]
[12/23/10,02:12:04] ===========================


Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\dd_dotnetfx3error.txt
Pastebin: http://pastebin.com/XmNM26Mn
Sendspace: http://www.sendspace.com/file/9ntqxo
[12/23/10,02:19:10] VS Scenario: [2] CSupportedPlatformCheck failed : You must use "Turn Windows features on or off" in the Control Panel to install or configure Microsoft .NET Framework 3.0 x86.
[12/23/10,02:19:10] VS Scenario: [2] Failed to pass the Warnings/Blocks checks in CVSScenario::Start()


Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\dd_dotnetfx3install.txt
Pastebin: http://pastebin.com/wuqvB7S6
Sendspace: http://www.sendspace.com/file/a6e8af
[12/23/10,02:12:11] Setup.exe: StartUIManager()
[12/23/10,02:12:11] vs70uimgr: Entering RunScenario() method.
[12/23/10,02:12:11] vs70uimgr: CUIMgr::RunScenario(): Starting the active scenario
[12/23/10,02:12:11] VS Scenario: Validating system requirements
[12/23/10,02:12:12] Setup_Blocked: CSupportedPlatformCheck
[12/23/10,02:19:10] Setup.exe: AddGlobalCustomProperty
[12/23/10,02:19:10] Setup.exe: AddGlobalCustomProperty
[12/23/10,02:19:10] VS Scenario: ***ERRORLOG EVENT*** : CSupportedPlatformCheck failed : You must use "Turn Windows features on or off" in the Control Panel to install or configure Microsoft .NET Framework 3.0 x86.
[12/23/10,02:19:10] Setup.exe: AddGlobalCustomProperty
[12/23/10,02:19:10] VS Scenario: ***ERRORLOG EVENT*** : Failed to pass the Warnings/Blocks checks in CVSScenario::Start()
[12/23/10,02:19:10] vs70uimgr: CUIMgr::RunScenario(): Start() returned canceled or FAILED(hr)


Filename: C:\Documents and Settings\Administrator\Local Settings\Temp\uxeventlog.txt
Pastebin: http://pastebin.com/JV3kQnqq
Sendspace: http://www.sendspace.com/file/ln0jhe
[12/23/10,02:12:12] Setup_Blocked: CSupportedPlatformCheck
justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Re: Microsoft .NET Framework 3.0 x86 (DOTNET)

PostPosted by justjohnny » Wed Dec 22, 2010 4:07 pm

justjohnny
 
Posts: 217
Joined: Mon Apr 12, 2010 7:25 am

Next

Return to Backporting Applications

Who is online

Users browsing this forum: No registered users and 0 guests

cron