Можно ли отправить параметры в предварительные условия InstallShield? - PullRequest
0 голосов
/ 02 ноября 2009

Я оцениваю InstallShield 2010 и пытаюсь установить для некоторых параметров командной строки обязательное условие SQL Server 2008 во время выполнения пользователем. Похоже, что предварительное условие полностью определено в файлах .prq (в стиле xml).

Wise для Windows использовал WiseScript для вызова обязательных установок. Похоже, что в InstallAware есть что-то похожее, со своими собственными скриптами. Существует ли нечто подобное для InstallShield?

Ответы [ 3 ]

2 голосов
/ 13 декабря 2009

Мы используем IS v12; Я создал файл .prq для этой цели (они не предоставляют .prq для SQL 2008 для IS v12). Сначала я пошел к http://msdn.microsoft.com/en-us/library/ms144259.aspx, чтобы получить все возможные аргументы строки cmd. Затем я использовал редактор IS PRQ для создания базовой структуры .prq. Затем я вручную отредактировал файл .prq (xml), чтобы (а) легко внести небольшие изменения в будущем и (б) упростить различия в управлении версиями.

    <?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 голосов
/ 03 ноября 2009

Да - щелкнув правой кнопкой мыши предварительное условие SQL Server -> вкладка «Приложение для запуска» -> «Укажите командную строку для приложения».

0 голосов
/ 12 января 2012

Единственный способ, которым я знаю, как это сделать - это написать Helper.EXE, который вызывает PRQ. EXE должен был бы определить настройки Windows и молча передать правильные аргументы в настоящий Prereq EXE / MSI.

...