[英]VS2010 Setup Project Freezes on 'Select Installation Folder'
I have a pretty basic c# winforms project that has an associated setup project. 我有一个非常基本的c#winforms项目,它有一个相关的安装项目。 It has one custom dialog (Textboxes (A)).
它有一个自定义对话框(文本框(A))。 When I run the installer, it freezes when I click
Next
to go to the Select Installation Folder
dialog. 当我运行安装程序时,当我单击“
Next
转到“ Select Installation Folder
对话框时,它会冻结。 Then after several minutes, it unfreezes. 几分钟后,它解冻了。 When I finally click
Install
, the window disappears but msiexec.exe
is still running in the background (two of them actually). 当我最终单击
Install
,窗口消失但msiexec.exe
仍在后台运行(实际上有两个)。
Could someone please tell me what the heck is going wrong? 有人可以告诉我到底出了什么问题吗?
EDIT: Here's the msiexec log: http://www.mediafire.com/?jqmmimwjgni 编辑:这是msiexec日志: http : //www.mediafire.com/? jqmmimwjgni
The problem does not seem to be the length of the name, but the fact that the name DATABASE is used as an internal MSI property containing the full filename of the installer file 1 . 问题似乎不是名称的长度,而是名称DATABASE用作包含安装程序文件1的完整文件名的内部MSI属性。
If you bind your edit field to that property the value of this property will be overwritten with whatever the edit field contains. 如果将编辑字段绑定到该属性,则将使用编辑字段包含的任何内容覆盖此属性的值。
MSI doesn't like that. MSI不喜欢这样。 Unfortunately, I could not find any place where it is documented that the name DATABASE is reserved (The built-in MSI properties are documented here ).
不幸的是,我无法找到它的记载, 在名称数据库被保留 (内建MSI属性记录任何地方在这里 )。 So I wouldn't say this is a bug in MSI, but bad documentation/developer usability (as it is unfortunately too often the case with Windows Installer).
所以我不会说这是MSI中的一个错误,但文档/开发人员的可用性很差(不幸的是,Windows Installer的情况经常发生)。
In your log file you will find the following entries: 在日志文件中,您将找到以下条目:
MSI (c) (64:1C) [19:30:12:339]: PROPERTY CHANGE: Modifying DATABASE property.
MSI(c)(64:1C)[19:30:12:339]:PROPERTY CHANGE:修改DATABASE属性。 Its current value is 'd:\\ ... mysetup.msi'.
它的当前值是'd:\\ ... mysetup.msi'。 Its new value: 'ProgressNotes'.
它的新价值:'ProgressNotes'。
And later on when the installer is hanging: 以后安装程序挂起时:
MSI (c) (64:68) [19:30:41:701]: Note: 1: 1314 2: ProgressNotes
MSI(c)(64:68)[19:30:41:701]:注意:1:1314 2:ProgressNotes
Here should probably appear the full path to your MSI file... 这里应该可能出现MSI文件的完整路径......
Solution: Use any other name that is not reserved. 解决方案:使用未保留的任何其他名称。
1 You can easily see this if you set Edit1Property to 'DBProperty' and Edit1Value to '[DATABASE]' (without the single quotes). 1 如果将Edit1Property设置为“DBProperty”并将Edit1Value设置为“[DATABASE]”(不带单引号),则可以轻松看到此信息。
I found it! 我找到了! I'm pretty sure this is a bug of some sort with the Setup project (can someone else confirm this?).
我很确定这是安装项目的某种错误(其他人可以确认这个吗?)。
EDIT : See 0xA3's answer for the real reason as to why this fails. 编辑 :请参阅0xA3的答案,了解为什么失败的真正原因 。
Steps to reproduce: 重现步骤:
Textboxes (A)
. Textboxes (A)
。 Edit1Property
, Edit2Property
etc to DATABASE
Edit1Property
, Edit2Property
等,以DATABASE
Select Installation Folder
screen). Select Installation Folder
屏幕上)。 Hope this helps someone. 希望这有助于某人。
PS - Worst bug ever to track down :) PS - 有史以来最糟糕的追踪:)
A bug report has been logged with Microsoft. Microsoft 已记录错误报告。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.