VS2010安装项目冻结'选择安装文件夹'

时间:2010-07-12 21:44:02

标签: c# visual-studio setup-project

我有一个非常基本的c#winforms项目,它有一个相关的设置项目。它有一个自定义对话框(文本框(A))。当我运行安装程序时,当我点击Next转到Select Installation Folder对话框时,它会冻结。几分钟后,它解冻了。当我最终点击Install时,窗口消失,但msiexec.exe仍然在后台运行(实际上有两个)。

有人可以告诉我到底出了什么问题吗?

编辑:这是msiexec日志:http://www.mediafire.com/?jqmmimwjgni

2 个答案:

答案 0 :(得分:3)

问题似乎不是名称的长度,而是名称DATABASE用作内部MSI属性,包含安装程序文件 1 的完整文件名。

如果将编辑字段绑定到该属性,则该属性的值将被编辑字段包含的任何内容覆盖。

MSI不喜欢这样。不幸的是,我找不到记录名称DATABASE被保留的任何地方(内置的MSI属性记录为here)。所以我不会说这是MSI中的一个错误,但文档/开发人员的可用性很差(不幸的是,Windows Installer的情况经常发生)。

在日志文件中,您将找到以下条目:

  

MSI(c)(64:1C)[19:30:12:339]:PROPERTY CHANGE:修改DATABASE属性。它的当前值是'd:\ ... mysetup.msi'。它的新价值:'ProgressNotes'。

以后安装程序挂起时:

  

MSI(c)(64:68)[19:30:41:701]:注意:1:1314 2:ProgressNotes

这里应该出现MSI文件的完整路径......

解决方案:使用未保留的任何其他名称。

1 如果将Edit1Property设置为'DBProperty'并将Edit1Value设置为'[DATABASE]'(不带单引号),则可以很容易地看到这一点。

答案 1 :(得分:1)

我找到了!我很确定这是安装项目的某种错误(其他人可以确认吗?)。

编辑:请参阅0xA3's answer for the real reason了解失败的原因。

重现的步骤:

  1. 添加Textboxes (A)
  2. Edit1PropertyEdit2Property等设置为DATABASE GREATER 7个字符 < /撞击>
  3. 重建并安装项目(它应挂在Select Installation Folder屏幕上)。
  4. 希望这有助于某人。

    PS - 最糟糕的错误永远追踪:)

    与Microsoft的错误报告has been logged