“VSDFXAvailable”的含义是什么意思? (为什么我的自定义.net-Setup失败?)

时间:2011-01-03 21:15:53

标签: .net windows-installer installation msiexec

在visual studio 2010中,我设置了一个项目“Visual Studio Installer”,它包含一个自定义操作。

在我的开发机器上,安装程序按预期工作。

在两台测试计算机(安装了.net 4.0的Windows 7)上安装失败。

设置是请求/尝试安装.net 4.0框架(已经存在)。

使用msiexec installer.msi / L * V test.log我制作了详细的日志,摘录如下。

这让我相信我的问题与启动条件的评估失败有关

  

VSDFXAvailable

使用谷歌我发现只能参考粘贴的日志文件。

这条件甚至是什么? 有人可以查看日志文件并确认这是导致错误吗?

谢谢!

完整的日志在这里: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.  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.

1 个答案:

答案 0 :(得分:1)

此属性似乎由.NET Framework启动条件使用。尝试检查MSI中的RegLocator表,以查看启动条件是否使用Windows Installer搜索。如果是,请检查您的计算机上是否存在目标注册表项。

此外,请确保.NET Framework安装与您的包平台相匹配。例如,32位安装程序很可能无法检测到64位.NET Framework。