【发布时间】:2016-10-17 18:07:01
【问题描述】:
我试图在升级时将 XML 文件中的值重新读取到我的 Installshield Basic MSI 项目中,因为它总是坚持用默认值覆盖我通过 xml 文件更改修改的 XML 文件。当我进入“系统搜索”屏幕时,我通过系统搜索向导添加了一个新的 XML 文件值。然后我输入 exe.config 文件的文件名(内容如下),我指定文件安装位置的完整路径,我为 XPath 输入“/configuration/appSettings/add[@key="UiServiceIpAddress"]”。我让它搜索属性“value”的值并告诉它将该值存储在一个有效的属性中。
当我运行这个 msi 时,它似乎没有做任何事情。查看我的 MSI 日志(下面的输出)后,我可以看到 AppSearch 正在运行,但它甚至没有提到我的 xml appsearch。谷歌搜索了一下后,我想出了如何在我的 MSI 上运行验证。有一个与之相关的错误,显示为“无效的文件名;表:签名,列文件名,密钥:NewSignature1”。文件名对我来说似乎有效。所以我被难住了。
Msi 日志输出:
Action start 13:21:48: AppSearch.
AppSearch: Property: IEXPLORE, Signature: IEXPLORE_REG.C8C0673E_50E5_4AC4_817B_C0E4C4466990
MSI (c) (80:B0) [13:21:48:597]: Note: 1: 2262 2: Signature 3: -2147287038
MSI (c) (80:B0) [13:21:48:597]: WIN64DUALFOLDERS: 'C:\Program Files (x86)\' will substitute 17 characters in 'C:\Program Files\Internet Explorer\IEXPLORE.EXE' folder path. (mask argument = 0, the folder pair's iSwapAttrib member = 0).
MSI (c) (80:B0) [13:21:48:597]: PROPERTY CHANGE: Adding IEXPLORE property. Its value is 'C:\Program Files (x86)\Internet Explorer\IEXPLORE.EXE'.
AppSearch: Property: DOTNETVERSION40FULL, Signature: DotNet40Full
MSI (c) (80:B0) [13:21:48:597]: Note: 1: 2262 2: Signature 3: -2147287038
MSI (c) (80:B0) [13:21:48:597]: PROPERTY CHANGE: Adding DOTNETVERSION40FULL property. Its value is '#1'.
Action ended 13:21:48: AppSearch. Return value 1.
XML 文件:
<?xml version="1.0"?>
<configuration>
<appSettings>
<add value="127.0.0.1" key="UiServiceIpAddress"></add>
</appSettings>
</configuration>
【问题讨论】:
标签: xml windows-installer installshield