MSI安装程序和自定义文件夹

时间:2009-11-19 18:17:51

标签: installer properties windows-installer directory

我有一个有趣的问题。我为.NET 3.5应用程序创建了一个MSI安装程序。在安装过程中,我要求用户提供应存储应用程序输出文件的自定义文件夹名称。

为了解决这个问题,我添加了一个“Textboxes A”用户界面项。我为TextBox Edit1指定了一个属性。

我在“注册表”视图中使用此属性将该路径存储在注册表中 - 这有效。但: 我还在“文件系统”视图中使用此属性来指定目标文件夹。

结果是:注册表存储正确。但是安装程序始终创建一个名为 Textbox Edit1 的默认值的目录。我已经更改了这个名称,以确保没有可以获得该值的地方。

我似乎安装程序UI没有更新该属性,尽管注册表值设置正确。

是否有人遇到过相同或类似的问题并找到解决方案/解决方法?

谢谢,亚瑟

编辑:如果我更改UI项目的顺序(首先询问自定义文件夹,然后请求目标文件夹)它可以正常工作。但这是 - 我应该说什么 - 不是解决方案。这是一个悲伤的解决方法。

编辑:使用Edit1我的意思是“TextBox View A”的编辑控件1,它绑定到属性“DATAFOLDERPROPERTY”。

1 个答案:

答案 0 :(得分:1)

详细的MSI日志应该告诉您更多关于到底发生了什么的信息。有两件事情在我身上跳出来。一个是您的财产Edit1不是公共财产。为了公开,所有字母必须是大写的,例如EDIT1。另一个是您在CostFinalize设置目录位置后尝试编辑文件夹位置。要在此时更新目录,您不仅可以更改其关联的属性。您需要在序列中添加Set Directory custom action (type 35)或在对话框中添加SetTargetPath control event - 如果可能,我会使用控制事件。