-- 检查是否已经安装MSDE
result = Registry.DoesKeyExist(HKEY_LOCAL_MACHINE, "SOFTWARE\\Microsoft\\MSSQLServer\\MSSQLServer");
if not result then 
-- 这些操作在点击“下一步”按钮时执行。安装MSDE
result = shell.Execute(SessionVar.Expand("%TempLaunchFolder%\\\\setup.exe"),SessionVar.Expand("/i sqlrun01.msi DISABLENETWORKPROTOCOLS=0 SECURITYMODE=\"SQL\" TARGETDIR=\"%CommonFilesFolder%\\SQLSERVER\" INSTANCENAME=\"TZERP\" SAPWD=\"123\""), "", SW_SHOWNORMAL, true); 

repeat
setupend=File.IsInUse(SessionVar.Expand("%TempLaunchFolder%\\sqlrun01.msi")) or File.IsInUse(SessionVar.Expand("%TempLaunchFolder%\\setup.exe"));
until setupend==false; --写入服务器注册信息
--启动服务
Service.Start("MSSQLSERVER","", nil);
-- 进入下一个屏幕
Screen.Next();以上的打包代码,我执行了setup.exe以后,程序直接就跳到Screen.Next();这句了,按我的设计,他是应该执行完setup.exe然后才能Screen.Next();的请问知道的朋友,这个问题怎么能解决?另外:SAPWD=\"123\""这个参数好像没用,MSDE装了以后sa是没密码的

解决方案 »

  1.   

    忘记说明,我用的是 setup factory 7,另外,这个打包工具不能取得计算机名称的吗?
      

  2.   

    http://download.csdn.net/source/1421217
      

  3.   


    先安装MSDE,然后删除安装文件,这个怎么处理?没思路的说
      

  4.   

    支持。
    自己写一个程序,完成你要的功能,打包进去,安装后让它运行。
    setupfactory不清楚,在InstallShield里面是LaunchAppAndWait()
    参考 http://download.csdn.net/source/1909734
      

  5.   

    后来我把setup.exe、setup.msi和setup.ini都放到TempLaunchFolder里面,Shell.Execute运行.exe文件,File.IsInUse检查.exe文件,最后就运行成功了。如果你还没有解决的话,可以试试这个方法。
    Good Luck to you!