简体   繁体   中英

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://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 .

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.

1 You 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:

  1. Add Textboxes (A) .
  2. Add a set one of the Edit1Property , Edit2Property etc to DATABASE something GREATER than 7 characters .
  3. 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.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM