条件“VSDFXAvailable”意味着什么?意思是? (为什么我的自定义 .net-Setup 失败?)
在 Visual Studio 2010 中,我设置了一个项目“Visual Studio 安装程序”,它包含一个自定义操作。
在我的开发机器上,安装程序按预期工作。
在两台测试机器(安装了 .net 4.0 的 Windows 7)上安装失败。
安装程序正在请求/尝试安装 .net 4.0 框架(已经存在)。
使用 msiexec installer.msi /L*V test.log 我生成了详细的日志,摘录如下。
这让我相信我的问题与启动条件评估失败有关
VSDFX可用
通过谷歌,我只找到了对粘贴日志文件的引用。
这个条件究竟是关于什么的? 有人可以查看日志文件并确认这是导致错误的原因吗?
谢谢!
完整的日志在这里: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.
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. 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.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
该属性似乎由 .NET Framework 启动条件使用。尝试检查 MSI 中的 RegLocator 表以查看启动条件是否使用 Windows Installer 搜索。如果存在,请检查您的计算机上是否存在目标注册表项。
另外,请确保 .NET Framework 安装与您的包平台相匹配。例如,32 位安装程序很可能无法检测到 64 位 .NET Framework。
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.