我正在評估InstallShield 2010,並試圖在用戶運行時爲SQL Server 2008先決條件設置一些命令行參數。看起來,先決條件完全在.prq文件(xml樣式)中定義。是否可以將參數發送到InstallShield先決條件?
明智的Windows使用WiseScript來調用必備的安裝。 InstallAware似乎有一些類似的東西,用自己的腳本編寫。 InstallShield存在類似的情況嗎?
我正在評估InstallShield 2010,並試圖在用戶運行時爲SQL Server 2008先決條件設置一些命令行參數。看起來,先決條件完全在.prq文件(xml樣式)中定義。是否可以將參數發送到InstallShield先決條件?
明智的Windows使用WiseScript來調用必備的安裝。 InstallAware似乎有一些類似的東西,用自己的腳本編寫。 InstallShield存在類似的情況嗎?
我們使用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="<ISProductFolder>\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="NT AUTHORITY\NETWORK SERVICE" /AGTSVCSTARTUPTYPE=Manual /BROWSERSVCSTARTUPTYPE=Automatic /SQLSVCSTARTUPTYPE=Automatic /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /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="NT AUTHORITY\NETWORK SERVICE" /AGTSVCSTARTUPTYPE=Manual /BROWSERSVCSTARTUPTYPE=Automatic /SQLSVCSTARTUPTYPE=Automatic /SQLSVCACCOUNT="NT AUTHORITY\NETWORK SERVICE" /RSSVCSTARTUPTYPE=Automatic"
/>
<dependencies>
<dependency File="<ISProductFolder>\SetupPrerequisites\Microsoft Installer 4.5 for XP.prq"/>
<dependency File="<ISProductFolder>\SetupPrerequisites\Microsoft Installer 4.5 for Windows Server 2003 or 64 bit XP.prq"/>
<dependency File="<ISProductFolder>\SetupPrerequisites\Power Shell 1.0 for Windows XP.prq"/>
<dependency File="<ISProductFolder>\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>
是 - 右鍵單擊SQL Server先決條件 - >「運行應用程序」選項卡 - >「爲應用程序指定命令行」。
我知道如何做到這一點的唯一方法是編寫一個PRQ調用的Helper.EXE。 EXE需要檢測窗口設置,並將正確的參數默認傳遞給真正的Prereq EXE/MSI。
我已經在使用它,但是我想在運行時設置/ SQLSVCACCOUNT,而不是編譯時間,因爲這個值需要針對不同的Windows語言設置進行本地化。 – 2009-11-03 13:45:39
http://community.flexerasoftware.com/showthread.php?p=436775#post436775 – KMoraz 2009-11-20 09:41:36