0

必要な場合にのみSQLServerCompactEdition4.0を検出してインストールするためのサンプルNSISスクリプトを探しています。

4

1 に答える 1

3

私の将来の自分のために私自身の質問に答えます。含まれるもの:

!include "x64.nsh"
!include LogicLib.nsh

セクションは次のとおりです。バージョンチェックはSP1をテストしています

Section "SQL Server Compact Edition 4.0 (required)"
    SectionIn RO

    ${If} ${RunningX64} 
        ReadRegStr $0 HKLM "SOFTWARE\Wow6432Node\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" "DesktopRuntimeVersion"
        DetailPrint "Microsoft SQL Server Compact Edition (64 bit) DesktopRuntimeVersion=$0"
        ${If} $0 == '4.0.8876.1'
            DetailPrint "Microsoft SQL Server Compact Edition 4.0 SP1 (64 bit) is installed"
        ${Else}
            DetailPrint "Installing Microsoft SQL Server Compact Edition 4.0 SP1 (64 bit)"
            SetDetailsPrint listonly
            ExecWait '"$INSTDIR\Tools\SSCERuntime_x64-ENU.exe" /i /passive'
        ${EndIf}
    ${Else}
        ReadRegStr $0 HKLM "SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v4.0\ENU" "DesktopRuntimeVersion"
        DetailPrint "Microsoft SQL Server Compact Edition (32 bit) DesktopRuntimeVersion=$0"
        ${If} $0 == '4.0.8876.1'
            DetailPrint "Microsoft SQL Server Compact Edition 4.0 SP1 (32 bit) is installed"
        ${Else}
            DetailPrint "Installing Microsoft SQL Server Compact Edition 4.0 SP1 (32 bit)"
            SetDetailsPrint listonly
            ExecWait '"$INSTDIR\Tools\SSCERuntime_x86-ENU.exe" /i /passive'
        ${EndIf}
    ${EndIf}

    SetDetailsPrint lastused

SectionEnd

余談ですが、64ビットシステムにx86とx64をインストールする必要があるというブログを見たことがありますが、64ビットシステムでx86を実行すると、互換性がなくエラーが発生します。したがって、またはのいずれかのみをインストールします。

于 2012-10-09T01:26:35.787 に答える