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

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

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

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

使用msiexec installer.msi /l*v test.log我制作了下面的详细日志。

这使我相信我的问题与对发射条件的评估失败有关

vsdfxavailable

使用Google,我仅找到对粘贴日志文件的引用。

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

谢谢!

完整的日志在这里: 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.
有帮助吗?

解决方案

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

另外,请确保.NET框架安装与您的软件包平台匹配。例如,32位安装程序很可能不会检测到64位.NET框架。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top