Archive for the ‘Visual Studio’ Category

Installing Mobile Client Software Factory on Vista x64

Well, let me start by saying I can’t believe how difficult this was to get working. To start with, the SCSF May 2007 Dependency Checker shows almost every item as not installed, even though they are. Secondly, Mobile Client Software Factory says that it requires Guidance Automation Toolkit 2006 or later, even though the newest version is installed.

The basic problem is that the installer is looking for registry keys where the 64 bit keys are normally stored. However, the keys are actually stored underneath Wow6432Node.

So, my solution was to reflected the embedded App.Config, and find the registry keys it was looking for, find the corresponding 32 bit keys, convert them to 64 bit keys, and then imported them. The registry import file looks like this:

 
 

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Guidance Automation Extensions]
“CurrentVersion”=”1.2”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Guidance Automation Extensions\Compatibililty]
“1.1”=dword:00000001

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}]
“ID”=dword:00000001
“MinEdition”=”Standard”
“ProductVersion”=”1.0”
“ProductName”=”recipe framework”
“CompanyName”=”Microsoft”
@=”Microsoft.Practices.RecipeFramework.VisualStudio.RecipeManagerPackage, Microsoft.Practices.RecipeFramework.VisualStudio, Version=1.0.60429.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”
“InprocServer32″=”C:\\Windows\\syswow64\\mscoree.dll”
“Class”=”Microsoft.Practices.RecipeFramework.VisualStudio.RecipeManagerPackage”
“CodeBase”=”file:///C:/Program Files (x86)/Microsoft Visual Studio 8/Common7/IDE/PublicAssemblies/Microsoft.Practices.RecipeFramework.VisualStudio.DLL”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\SatelliteDll]
“Path”=”C:\\Program Files (x86)\\Microsoft Visual Studio 8\\Common7\\IDE\\PublicAssemblies”
“DllName”=”Microsoft.Practices.RecipeFramework.VisualStudioUI.dll”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates]

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{22ce1b10-8c41-41fd-aa62-3e9d19ef1a7f}]
“LastTemplate”=dword:0000000e
“PackageName”=”guid22ce1b10_8c41_41fd_aa62_3e9d19ef1a7f”
“1”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Items\\ServiceAgent\\ServiceAgent.vstemplate”
“2”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Projects\\Module\\Module.Basic.vstemplate”
“3”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Projects\\Module\\Module.Layout.vstemplate”
“4”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Projects\\Module\\ModuleHandle.vstemplate”
“5”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Projects\\Module.Business\\BusinessModuleHandle.vstemplate”
“6”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Projects\\Module.Business\\Module.vstemplate”
“7”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Projects\\Module.Interface\\Module.Interface.vstemplate”
“8”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Solutions\\SmartClient.vstemplate”
“9”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Solutions\\Projects\\Infrastructure\\Infrastructure.vstemplate”
“10”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Solutions\\Projects\\Library\\Library.vstemplate”
“11”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Solutions\\Projects\\Module\\Module.vstemplate”
“12”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Solutions\\Projects\\Shell.Basic\\Shell.vstemplate”
“13”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Solutions\\Projects\\Shell.Extended\\Shell.vstemplate”
“14”=”C:\\Program Files (x86)\\Microsoft SCSF\\GuidancePkg\\Bin\\Templates\\Solutions\\Projects\\Shell.LayoutModule\\Shell.Layout.vstemplate”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{23fc29c9-fafe-47f1-b633-b548e788dddf}]
“LastTemplate”=dword:00000004
“PackageName”=”MetaGuidancePackage”
“1”=”C:\\Program Files (x86)\\Microsoft Guidance Automation Toolkit\\Templates\\Items\\Action\\Action.vstemplate”
“2”=”C:\\Program Files (x86)\\Microsoft Guidance Automation Toolkit\\Templates\\Solutions\\GuidancePackageSolution.vstemplate”
“3”=”C:\\Program Files (x86)\\Microsoft Guidance Automation Toolkit\\Templates\\Solutions\\Projects\\GuidancePackage\\GuidancePackage.vstemplate”
“4”=”C:\\Program Files (x86)\\Microsoft Guidance Automation Toolkit\\Templates\\Solutions\\Projects\\GuidancePackageInstaller\\GuidancePackageInstaller.vstemplate”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{6d454017-bb09-47ca-b66d-feb9edc25075}]
“LastTemplate”=dword:0000000c
“PackageName”=”WCFGuidancePackage”
“1”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Projects\\WCFClient\\Client.vstemplate”
“2”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Projects\\WCFFaultContract\\FaultContract.vstemplate”
“3”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\WCF Guidance Package.vstemplate”
“4”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFBusinessEntity\\BusinessEntity.vstemplate”
“5”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFBusinessLogic\\BusinessLogic.vstemplate”
“6”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFClient\\Client.vstemplate”
“7”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFDataAccess\\DataAccess.vstemplate”
“8”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFDataContract\\DataContract.vstemplate”
“9”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFFaultContract\\FaultContract.vstemplate”
“10”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFHost\\Host.vstemplate”
“11”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFServiceContract\\ServiceContract.vstemplate”
“12”=”C:\\Program Files (x86)\\Microsoft Service Factory\\WCF Guidance Package\\Templates\\Solutions\\Projects\\WCFServiceImplementation\\ServiceImplementation.vstemplate”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{7c2709d0-bc18-455e-a822-082836e0672a}]
“LastTemplate”=dword:00000000
“PackageName”=”WCFSecurityGuidancePackage”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{adf804af-9229-4bc6-807e-700ccc7b69d6}]
“LastTemplate”=dword:0000000a
“PackageName”=”ASMXGuidancePackage”
“1”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Projects\\ASMXClient\\Client.vstemplate”
“2”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\ASMXTooling.vstemplate”
“3”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXBusinessEntity\\BusinessEntity.vstemplate”
“4”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXBusinessLogic\\BusinessLogic.vstemplate”
“5”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXClient\\Client.vstemplate”
“6”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXDataAccess\\DataAccess.vstemplate”
“7”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXDataType\\DataType.vstemplate”
“8”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXHost\\Host.vstemplate”
“9”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXServiceContract\\ServiceContract.vstemplate”
“10”=”C:\\Program Files (x86)\\Microsoft Service Factory\\ASMX Guidance Package\\Templates\\Solutions\\Projects\\ASMXServiceImplementation\\ServiceImplementation.vstemplate”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{b665c858-8ab2-407d-9c7c-102237d0b7cc}]
“LastTemplate”=dword:0000001e
“PackageName”=”SmartClientFactoryPackage”
“1”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Business.CS\\BusinessModuleHandle.vstemplate”
“2”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Business.CS\\Module.vstemplate”
“3”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Business.Tests.CS\\Module.Tests.vstemplate”
“4”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Business.Tests.VB\\Module.Tests.vstemplate”
“5”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Business.VB\\BusinessModuleHandle.vstemplate”
“6”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Business.VB\\Module.vstemplate”
“7”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.CS\\Module.Basic.vstemplate”
“8”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.CS\\Module.Layout.vstemplate”
“9”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.CS\\ModuleHandle.vstemplate”
“10”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Interface.CS\\Module.Interface.vstemplate”
“11”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Interface.VB\\Module.Interface.vstemplate”
“12”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Tests.CS\\Module.Tests.vstemplate”
“13”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.Tests.VB\\Module.Tests.vstemplate”
“14”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.VB\\Module.Basic.vstemplate”
“15”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.VB\\Module.Layout.vstemplate”
“16”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Projects\\Module.VB\\ModuleHandle.vstemplate”
“17”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\SCSFSolutionCS.vstemplate”
“18”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\SCSFSolutionVB.vstemplate”
“19”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Infrastructure.CS\\Infrastructure.vstemplate”
“20”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Infrastructure.VB\\Infrastructure.vstemplate”
“21”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Library.CS\\Library.vstemplate”
“22”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Library.VB\\Library.vstemplate”
“23”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Module.CS\\Module.vstemplate”
“24”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Module.VB\\Module.vstemplate”
“25”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Shell.Basic.CS\\Shell.vstemplate”
“26”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Shell.Basic.VB\\Shell.vstemplate”
“27”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Shell.Extended.CS\\Shell.vstemplate”
“28”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Shell.Extended.VB\\Shell.vstemplate”
“29”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Shell.LayoutModule.CS\\Shell.Layout.vstemplate”
“30”=”C:\\Program Files (x86)\\Microsoft Smart Client Factory\\Guidance Package\\Templates\\Solutions\\Projects\\Shell.LayoutModule.VB\\Shell.Layout.vstemplate”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{d292b01a-6efa-40ad-a56a-57fb7439e2ab}]
“LastTemplate”=dword:00000008
“PackageName”=”WebClientFactoryPackage”
“1”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Projects\\Module\\BusinessModule.vstemplate”
“2”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Projects\\Module\\FoundationalModule.vstemplate”
“3”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Projects\\Module.Tests\\BusinessModule.Tests.vstemplate”
“4”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Projects\\Module.Tests\\FoundationalModule.Tests.vstemplate”
“5”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Projects\\PageFlow\\PageFlow.vstemplate”
“6”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Solutions\\WCSF Guidance Package.vstemplate”
“7”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Solutions\\Projects\\Shell\\Shell.vstemplate”
“8”=”C:\\Program Files (x86)\\Microsoft Web Client Factory\\WCSF Guidance Package\\Templates\\Solutions\\Projects\\WebProject\\WebUI.vstemplate”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{77d93a80-73fc-40f8-87db-acd3482964b2}\Templates\{f8b16ed4-8656-4b73-922a-2fe00c6dff0f}]
“LastTemplate”=dword:00000000
“PackageName”=”DataAccessGuidancePackage”

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\{CACEFF92-665D-4A7E-9C8F-5E80B0610601}]
“AuthorizedCDFPrefix”=””
“Comments”=””
“Contact”=”Microsoft”
“DisplayVersion”=”1.0.51104”
“HelpLink”=””
“HelpTelephone”=””
“InstallDate”=”20070611”
“InstallLocation”=””
“ModifyPath”=hex(2):4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,78,\
00,65,00,20,00,2f,00,49,00,7b,00,43,00,41,00,43,00,45,00,46,00,46,00,39,00,\
32,00,2d,00,36,00,36,00,35,00,44,00,2d,00,34,00,41,00,37,00,45,00,2d,00,39,\
00,43,00,38,00,46,00,2d,00,35,00,45,00,38,00,30,00,42,00,30,00,36,00,31,00,\
30,00,36,00,30,00,31,00,7d,00,00,00
“Publisher”=”Microsoft”
“Readme”=””
“Size”=””
“EstimatedSize”=dword:00001f54
“UninstallString”=hex(2):4d,00,73,00,69,00,45,00,78,00,65,00,63,00,2e,00,65,00,\
78,00,65,00,20,00,2f,00,49,00,7b,00,43,00,41,00,43,00,45,00,46,00,46,00,39,\
00,32,00,2d,00,36,00,36,00,35,00,44,00,2d,00,34,00,41,00,37,00,45,00,2d,00,\
39,00,43,00,38,00,46,00,2d,00,35,00,45,00,38,00,30,00,42,00,30,00,36,00,31,\
00,30,00,36,00,30,00,31,00,7d,00,00,00
“URLInfoAbout”=””
“URLUpdateInfo”=””
“VersionMajor”=dword:00000001
“VersionMinor”=dword:00000000
“WindowsInstaller”=dword:00000001
“Version”=dword:0100c7a0
“Language”=dword:00000409
“DisplayName”=”Guidance Automation Toolkit”
“InstallSource”=”D:\\Users\\Mouch\\Downloads\\Programming\\Code\\Patterns & Practices\\”

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\VisualStudio\8.0\Packages\{b3bae735-386c-4030-8329-ef48eeda4036}]
@=”Microsoft.VisualStudio.WPFFlavor.WPFFlavor, Microsoft.VisualStudio.WPFFlavor, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a”
“InprocServer32″=”C:\\Windows\\SysWOW64\\mscoree.dll”
“Class”=”Microsoft.VisualStudio.WPFFlavor.WPFFlavor”
“CodeBase”=”C:\\Program Files (x86)\\Microsoft Visual Studio 8\\Common7\\IDE\\PrivateAssemblies\\Microsoft.VisualStudio.WPFFlavor.dll”
“ID”=dword:00000096
“MinEdition”=”standard”
“ProductVersion”=”2.0.0.0”
“ProductName”=”wpfflavor”
“CompanyName”=”Microsoft”

IMPORTANT!!!!! There are all sorts of local file references in that registry export. You definitely need to go through it and customize it to your setup.

This worked about 90% of the way. The Dependency Checker program now shows that everything is installed correctly.

However, the Mobile Client Software Factory still won’t install. So, I opened up the MSI using the Orcas viewer/editor that comes with the Windows SDK. I looked up the RegLocator table to find where it was looking for the Guidance Automation Toolkit. However, the registry key that it was looking for was actually there this time!

Rather than spend tons more time playing with registry keys, I just edited the GATRegistry row using Orcas so that it was identical to the GTXRegistry row. This basically removes the Guidance Automation Tookit dependency check.

So now I am able to install!  I did get some compile errors during the install, so I just loaded the installed solution files after the install was complete and recompiled them.

Advertisements