我会尝试从有问题的对话框和控件中跟踪这一点,或者通过详细日志跟踪该值。既然你说今天不行,那么我下面描述的流程很可能会出现中断,而且由于你不知道安装项目的完整状态,所以可能很难识别。所以从你所知道的搜索。
自上而下:配置了什么
首先,找到您作为选择的用户填写的对话框。然后找出与特定控件关联的属性。现在你有了一个线程;拉上它。
在直接编辑器中搜索对属性的引用。如果该属性名为 MYCONFIG,则仅搜索该属性:MYCONFIG。您可能会发现某种类似于 [MYCONFIG] 的用法,它通常是指定使用 MYCONFIG 值的格式字符串。您可能还必须搜索与您的项目相关的所有文件,因为自定义操作实现可以是存储在您的 InstallShield 项目之外的代码。
使用可能在 ControlEvent、CustomAction 或其他一些表中。如果它在 ControlEvent 中,它可能用于设置另一个属性。如果它位于设置属性(类型 51)的 CustomAction 中,则同上,这在 Custom Actions and Sequences 视图中可能更容易理解。在这种情况下,还要搜索设置的属性。
如果您在 ISSearchReplace* 或 ISXml* 或 IniFile 之类的表中找到它,它可能是 Text Files Changes、XML File Changes 或 INI File Changes 的一部分,并且该视图应该更容易理解。
也许那个线程在某个地方死胡同。一个属性被设置,但从未被引用。所以尝试从另一端搜索。
自下而上:写什么
如果有文本文件更改、xml 文件更改、ini 文件更改或引用您需要更新的文件的自定义操作,请查看他们从何处获取信息。试着跟着它回来。如果它们写得很好,您应该能够识别属性(注意一个名为 CustomActionData 的属性来自与其使用的自定义操作的名称匹配的属性),然后使用与上述相同的想法进一步追溯,但在另一个方向。
问题出在哪里?
如果线程没有连接,那可能就是问题所在。自定义操作也可能缺少权限但未报告失败,或者文件名或路径在此过程中的某处配置错误。寻找类似的小东西,如果事情看起来应该工作但没有工作。