2009-11-02 61 views
0

我正在评估InstallShield 2010,并试图在用户运行时为SQL Server 2008先决条件设置一些命令行参数。看起来,先决条件完全在.prq文件(xml样式)中定义。是否可以将参数发送到InstallShield先决条件?

明智的Windows使用WiseScript来调用必备的安装。 InstallAware似乎有一些类似的东西,用自己的脚本编写。 InstallShield存在类似的情况吗?

回答

2

我们使用IS v12;我为此目的构建了一个.prq文件(它们不提供用于IS v12的SQL 2008的.prq)。首先,我去了http://msdn.microsoft.com/en-us/library/ms144259.aspx以获得所有可能的cmd线参数。然后我使用IS PRQ编辑器来创建基本的.prq结构。然后,我手动编辑.prq(xml)文件以便(a)将来进行简单的小调整,以及(b)简化版本控制差异。

<?xml version="1.0" encoding="utf-8"?> 
<SetupPrereq> 
    <conditions> 
     <condition Type="16" Comparison="2" Path="[ProgramFilesFolder]Microsoft SQL Server\100\COM" FileName="sqlresld.dll" ReturnValue="2007.100.1600.22"/> 
    </conditions> 
    <files> 
     <file LocalFile="&lt;ISProductFolder&gt;\SetupPrerequisites\Microsoft SQL Server 2008 Express with Tools\SQLEXPRWT_x86_ENU.exe" CheckSum="BCC335711D44BAFC420B5165D2F04647" FileSize="0,229169680"/> 
    </files> 
    <execute file="SQLEXPRWT_x86_ENU.exe" requiresmsiengine="1" 
     cmdline  ="/INSTANCEID=AV /INSTANCENAME=AV /ACTION=Install /FEATURES=SQLENGINE,SSMS /HELP=0 /ERRORREPORTING=0 /SQMREPORTING=0 /INDICATEPROGRESS=0 /QUIETSIMPLE=1 /FILESTREAMLEVEL=0 /ENABLERANU=1 /TCPENABLED=1 /NPENABLED=0 /ADDCURRENTUSERASSQLADMIN=1 /AGTSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /AGTSVCSTARTUPTYPE=Manual /BROWSERSVCSTARTUPTYPE=Automatic /SQLSVCSTARTUPTYPE=Automatic /SQLSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /RSSVCSTARTUPTYPE=Automatic" 
     cmdlinesilent="/INSTANCEID=AV /INSTANCENAME=AV /ACTION=Install /FEATURES=SQLENGINE,SSMS /HELP=0 /ERRORREPORTING=0 /SQMREPORTING=0 /INDICATEPROGRESS=0 /QUIETSIMPLE=1 /FILESTREAMLEVEL=0 /ENABLERANU=1 /TCPENABLED=1 /NPENABLED=0 /ADDCURRENTUSERASSQLADMIN=1 /AGTSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /AGTSVCSTARTUPTYPE=Manual /BROWSERSVCSTARTUPTYPE=Automatic /SQLSVCSTARTUPTYPE=Automatic /SQLSVCACCOUNT=&quot;NT AUTHORITY\NETWORK SERVICE&quot; /RSSVCSTARTUPTYPE=Automatic" 
    /> 
    <dependencies> 
     <dependency File="&lt;ISProductFolder&gt;\SetupPrerequisites\Microsoft Installer 4.5 for XP.prq"/> 
     <dependency File="&lt;ISProductFolder&gt;\SetupPrerequisites\Microsoft Installer 4.5 for Windows Server 2003 or 64 bit XP.prq"/> 
     <dependency File="&lt;ISProductFolder&gt;\SetupPrerequisites\Power Shell 1.0 for Windows XP.prq"/> 
     <dependency File="&lt;ISProductFolder&gt;\SetupPrerequisites\Power Shell 1.0 for Windows Server 2003.prq"/> 
    </dependencies> 
    <properties Id="Microsoft SQL Server 2008 Express with Tools" Description="This installs Microsoft SQL Server 2008 Express Edition (SQL Server Express). The /qn switch suppresses all Setup dialog boxes and error messages. See http://msdn2.microsoft.com/en-us/library/ms144259.aspx for more information about the commad line options. The SQL setup logs to %programfiles%\Microsoft SQL Server\100\Setup Bootstrap\Log\"/> 
</SetupPrereq> 
2

是 - 右键单击​​SQL Server先决条件 - >“运行应用程序”选项卡 - >“为应用程序指定命令行”。

+0

我已经在使用它,但是我想在运行时设置/ SQLSVCACCOUNT,而不是编译时间,因为这个值需要针对不同的Windows语言设置进行本地化。 – 2009-11-03 13:45:39

+0

http://community.flexerasoftware.com/showthread.php?p=436775#post436775 – KMoraz 2009-11-20 09:41:36

0

我知道如何做到这一点的唯一方法是编写一个PRQ调用的Helper.EXE。 EXE需要检测窗口设置,并将正确的参数默认传递给真正的Prereq EXE/MSI。

相关问题