Как установить SQL Server 2008 Express с помощью Inno Setup? - PullRequest
1 голос
/ 18 января 2009

Кто-нибудь имеет сценарий или процедуры для установки SQL Server 2008 Express, настройки базы данных для приложения и, наконец, установки клиентского приложения .NET WinForm?

Ответы [ 2 ]

3 голосов
/ 09 февраля 2009

В подобных ситуациях, когда я полагаюсь на сторонние продукты (SQL Server Express), я склонен использовать установки, запускаемые из командной строки (либо непосредственно в файле cmd, либо из «правильного» инструмента установки). Этот сайт показывает, как установить Express из командной строки, затем вы можете использовать утилиту SQL Express для создания объекта. Этот метод «благословлен» Microsoft.

Иногда самое простое решение является лучшим, даже если это означает, что пользователь моего продукта должен установить SQL Express отдельно перед запуском моей установки. Ну, лучше для меня, во всяком случае: -)

2 голосов
/ 11 марта 2013

Следующий скрипт проверит полную версию SQL Server 2008 R2. Если полная версия уже установлена, то она пропускает установку SQL Server. Если полная версия не установлена, она проверяет версию SQL Express. Если он уже установлен, он пропустит установку. Если он не установлен, он установит SQL Express 2008 R2.

  1. Создать новый скрипт. Давайте назовем это sql2008express.iss со следующим содержанием

    [CustomMessages]
    
    sql2008r2expressx86_title=Microsoft SQL Server 2008 R2 Express Edition x86 (Including Tools)
    sql2008r2expressx64_title=Microsoft SQL Server 2008 R2 Express Edition x64 (Including Tools)
    
    sql2008r2expressx86_size=235.5 MB
    sql2008r2expressx64_size=247.5 MB
    
    [Code]
    
    const
    sql2008r2expressx86_url='http://download.microsoft.com/download/5/5/8/558522E0-2150-47E2-8F52-FF4D9C3645DF/SQLEXPRWT_x86_ENU.exe';
    sql2008r2expressx64_url='http://download.microsoft.com/download/5/5/8/558522E0-2150-47E2-8F52-FF4D9C3645DF/SQLEXPRWT_x64_ENU.exe';
    
    procedure sql2008express();
    
    var
    version: string;
    
    begin
    // Check if the full version fo the SQL Server 2008 R2 is installed
    RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLSERVER\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
    if (version < '10.5') or (version = '') then begin
    // If the full version is not found then check for the Express edition
    RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Microsoft SQL Server\SQLEXPRESS\MSSQLServer\CurrentVersion', 'CurrentVersion', version);
    if (version < '10.5') (*or (version > '9.00') or (version = '') *) then begin
    if isX64() then
        AddProduct('SQLEXPRWT_x64_ENU.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=SQL,AS,RS,IS,Tools /INSTANCENAME=SQLEXPRESS /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS="builtin\Administrators" /INDICATEPROGRESS /TCPENABLED=1 /BROWSERSVCSTARTUPTYPE=Automatic /ERRORREPORTING=0 /SQMREPORTING=0 /SECURITYMODE=SQL /SAPWD=1234', CustomMessage('sql2008r2expressx64_title'), CustomMessage('sql2008r2expressx64_size'), sql2008r2expressx64_url,false,false)
    else
    AddProduct('SQLEXPRWT_x86_ENU.exe', '/QS /IACCEPTSQLSERVERLICENSETERMS /ACTION=Install /FEATURES=SQL,AS,RS,IS,Tools /INSTANCENAME=SQLEXPRESS /SQLSVCACCOUNT="NT AUTHORITY\Network Service" /SQLSYSADMINACCOUNTS="builtin\Administrators" /INDICATEPROGRESS /TCPENABLED=1 /BROWSERSVCSTARTUPTYPE=Automatic /ERRORREPORTING=0 /SQMREPORTING=0 /SECURITYMODE=SQL /SAPWD=1234', CustomMessage('sql2008r2expressx86_title'), CustomMessage('sql2008r2expressx86_size'), sql2008r2expressx86_url,false,false);
            end;
        end;
    end;
    
  2. Затем в свой скрипт просто включите скрипт в тег [Run] и вызовите предыдущий созданный скрипт в теге [Code], как показано ниже:

    [Run]
    `#include "scripts\sql2008express.iss"
    [Code]
    sql2008express(); 
    

Другие примечания: - Если установочные наборы для SQL находятся в той же папке, он будет использовать их, в противном случае они будут загружены из Интернета. - Извините за форматирование, это не работает. Скопируйте / вставьте его в текстовом редакторе и отформатируйте. Это полно и работает.

Надеюсь, это поможет и другим. :)

...