What does the condition "VSDFXAvailable" mean? (Why does my custom .net-Setup fail?)
In visual studio 2010 I have setup a Project "Visual Studio Installer" it includes a custom action.
On my development machine the installer works as intended.
On two test machines (windows 7 with the .net 4.0 installed) the installation fails.
The setup is requesting/attempting the installation of the .net 4.0 framework (which is already there).
using msiexec installer.msi /L*V test.log I produced a detailed log, excerpt below.
This leads me to believe my problem is related to the failed evaluation of the launch condition
VSDFXAvailable
With google I find only reference to pasted log files.
What it this condition is even about? Can somebody have a look at the log file and confirm that this is causing the error?
Thanks!
The complete log is here: http://codetidy.com/359
Action start 17:19:49: VSDCA_VsdLaunchConditions.
INFO : [01/01/2011 17:19:49:377] [VsdLaunchConditions ]: Custom Action is starting...
INFO : [01/01/2011 17:19:49:378] [VsdLaunchConditions ]: CoInitializeEx - COM initialization Apartment Threaded...
INFO : [01/01/2011 17:19:49:378] [VsdLaunchConditions ]: Enumerating table using SQL statement: 'SELECT * FROM `_VsdLaunchCondition`'
INFO : [01/01/2011 17:19:49:379] [VsdLaunchConditions ]: Calling MsiGetActiveDatabase...
INFO : [01/01/2011 17:19:49:379] [VsdLaunchConditions ]: MsiDatabaseOpenViewW - Prepare Database to view table...
INFO : [01/01/2011 17:19:49:380] [VsdLaunchConditions ]: TMsiViewExecute - Open Database view on table...
INFO : [01/01/2011 17:19:49:380] [VsdLaunchConditions ]: Checking a launch condition...
INFO : [01/01/2011 17:19:49:381] [VsdLaunchConditions ]: Getting the condition to evaluate...
INFO : [01/01/2011 17:19:49:381] [VsdLaunchConditions ]: MsiRecordGetStringW - Fetching value...
INFO : [01/01/2011 17:19:49:381] [VsdLaunchConditions ]: MsiRecordGetStringW - Getting value from column '1'...
INFO : [01/01/2011 17:19:49:382] [VsdLaunchConditions ]: Evaluating condition 'VSDFXAvailable'...
INFO : [01/01/2011 17:19:49:382] [VsdLaunchConditions ]: RESULT: Condition is false.
INFO : [01/01/2011 17:19:49:382] [VsdLaunchConditions ]: MsiRecordGetStringW - Fetching value...
INFO : [01/01/2011 17:19:49:383] [VsdLaunchConditions ]: MsiRecordGetStringW - Getting value from column '2'...
This setup requires the .NET Framework version 4.0. Please install the .NET Framework and run this setup again. 开发者_StackOverflow社区 The .NET Framework can be obtained from the web. Would you like to do this now?
INFO : [01/01/2011 17:19:49:384] [VsdLaunchConditions ]: MsiSetPropertyW - Setting Property Value...
MSI (s) (24!FC) [17:19:49:384]: PROPERTY CHANGE: Adding HideFatalErrorForm property. Its value is 'TRUE'.
INFO : [01/01/2011 17:19:49:384] [VsdLaunchConditions ]: MsiSetPropertyW - Setting property 'HideFatalErrorForm' to 'TRUE'.
ERROR : [01/01/2011 17:19:49:385] [VsdLaunchConditions ]: Custom Action failed with code: '1603'
INFO : [01/01/2011 17:19:49:385] [VsdLaunchConditions ]: Custom Action completed with return code: '1603'
CustomAction VSDCA_VsdLaunchConditions returned actual error code 1603 (note this may not be 100% accurate if translation happened inside sandbox)
Action ended 17:19:49: VSDCA_VsdLaunchConditions. Return value 3.
Action ended 17:19:49: INSTALL. Return value 3.
This property seems to be used by a .NET Framework launch conditions. Try checking RegLocator table in your MSI to see if the launch condition uses a Windows Installer search. If it does, check if the target registry entry exists on your machine.
Also, make sure that the .NET Framework installation matches your package platform. For example, a 32-bit installer will most likely not detect a 64-bit .NET Framework.
精彩评论