VS2010 Setup Project Freezes on 'Select Installation Folder'
I have a pretty basic c# winforms project that has an associated setup project. It has one custom dialog (Textboxes (A)). When I run the installer, it freezes when I click Next
to go to the Select Installation Folder
dialog. 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).
Could someone please tell me what the heck is going wrong?
EDIT: Here's the msiexec log: http开发者_如何学Go://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 file1.
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. 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). 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).
In your log file you will find the following entries:
MSI (c) (64:1C) [19:30:12:339]: PROPERTY CHANGE: Modifying DATABASE property. Its current value is 'd:\ ... mysetup.msi'. Its new value: 'ProgressNotes'.
And later on when the installer is hanging:
MSI (c) (64:68) [19:30:41:701]: Note: 1: 1314 2: ProgressNotes
Here should probably appear the full path to your MSI file...
Solution: Use any other name that is not reserved.
1You can easily see this if you set Edit1Property to 'DBProperty' and Edit1Value to '[DATABASE]' (without the single quotes).
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.
Steps to reproduce:
- Add
Textboxes (A)
. - Add a set one of the
Edit1Property
,Edit2Property
etc toDATABASE
something GREATER than 7 characters. - Rebuild and install the project (it should hang on the
Select Installation Folder
screen).
Hope this helps someone.
PS - Worst bug ever to track down :)
A bug report has been logged with Microsoft.
精彩评论