在日语Windows XP上的MSI安装程序中没有SQL脚本

时间:2014-05-06 04:18:51

标签: sql windows-xp windows-installer installshield

我们必须在多个系统上使用InstallShield安装我们的产品。在安装过程中,我们必须执行一些SQL脚本,几乎在所有情况下都能正常工作。 除了日本的Windows XP,我们有(x86与SP3)。 (它不会在每台机器上都失败,只在某些机器上失败)。

首先,即使安装正在运行并且在没有错误输出的情况下结束,应用程序也因为缺少数据库和SQL实例设置而未运行。 在MSI中,我首先发现没问题。

我发现注册表项已经扩展了日志文件,因此我能够在一个地方看到错误。 安装程序无法从安装程序临时文件中提取SQL脚本。

这是工作安装的外观:

MSI (s) (D0:CC) [06:32:27:394]: Invoking remote custom action. DLL: C:\Windows\Installer\MSI2B17.tmp, Entrypoint: ISSQLServerCosting
1: Beginning SQL Server Costing Process... 
1: Reading the SQL script data from ISSQLConnection table... 
1: ISSQLRequirement table does not exist... 
1: ISSQLRequirement table does not exist... 
1: Finished SQL Server Costing Process... 
1: Setting Costing Info Location  ISSQLServerInstall : C:\Users\UserName\AppData\Local\Temp\~2B44.tmp 
MSI (s) (D0!9C) [06:32:27:465]: PROPERTY CHANGE: Adding ISSQLServerInstall property. Its value is 'C:\Users\UserName\AppData\Local\Temp\~2B44.tmp'.
...

(还有一些“设置成本核算信息位置”行,其中包含“物业更改:添加”。)

但是对于不起作用的日本XP,它看起来像:

MSI (s) (8C:E0) [14:51:37:031]: Invoking remote custom action. DLL: C:\WINDOWS\Installer\MSI30.tmp, Entrypoint: ISSQLServerCosting
1: Beginning SQL Server Costing Process... 
1: Reading the SQL script data from ISSQLConnection table... 
1: ISSQLRequirement table does not exist... 
1: An unhandled exception occurred in ExtractScriptFile() 
1: An unhandled exception occurred in ExtractScriptFile() 
1: An unhandled exception occurred in ExtractScriptFile() 
1: An unhandled exception occurred in ExtractScriptFile() 
1: ISSQLRequirement table does not exist... 
1: An unhandled exception occurred in ExtractScriptFile() 
1: Finished SQL Server Costing Process... 
1: Setting Costing Info Location  ISSQLServerInstall :  
1: Setting Costing Info Location  ISSQLServerUninstall :  

我们看到未处理的异常,但没有结果。

  1. 在MS帮助页面中,我看到了“未处理的异常”,这可能是由netapi32.dll中的错误引起的,所以我尝试将其替换为另一个版本。这没有改变任何东西,无论如何在安装期间更新版本被原始版本取代。
  2. 安装过程中有相同数量的临时文件(%temp%),也会在工作系统上创建。
  3. 在使用日文版Windows XP的虚拟机上,它正常工作,我发现没有区别。
  4. 所有工作都可以找到并且没有错误,只需要在该系统上发生缺少的SQL脚本。安装本身不会以错误结束。
  5. 我没有想法: - /请帮忙

1 个答案:

答案 0 :(得分:0)

我发现,如果我改变了" TEMP"和" TMP"通往其他任何地方。 我不知道为什么原始临时路径有问题,可以写入和删除临时文件,只提取SQL文件(或检查哪些临时脚本文件所在的)。

我与工作机器进行了比较,系统用户没有不同的权利。