4

SQL CE 3.5 を使用する VB.NET アプリケーションを作成しました。A) SQL CE がインストールされているかどうか、および B) インストールされている場合はどのバージョンかを確認するのに役立つベスト プラクティスまたはコードを誰かが持っているかどうか知りたいです。

msdn と google で何かを検索しましたが、役立つものは何も見つかりませんでした。レジストリを調べていたところ、次のキーが見つかりました: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server Compact Edition\v3.5 の文字列値 "Version" で、データは 3.5.5692.0 でした。

したがって、私の仮定は、このキーの存在を確認することですが、「3.5」キーは確かに 3.5 DLL に関連付けられているように聞こえるため、気になります。私が言おうとしているのは、SQL CE を持っている人に SQL 3.5 を強制的にインストールさせたくないということです (CE の将来のバージョンをここに挿入してください)。

その他の情報: ターゲット フレームワーク: .NET 2.0 最小ターゲット OS: Windows XP SP2

4

5 に答える 5

2

Windows マシンまたはポータブル デバイス上の SQL CE について話しているかどうかはわかりません。PC では、SQL CE のバージョンをアプリケーションと共に配布することをお勧めします。その権利はhttp://www.microsoft.com/Sqlserver/2005/en/us/compact-redistribute.aspxで登録できます。

于 2008-11-02T12:34:41.730 に答える
1

これが私の解決策です。インストール ファイルに 5 MB 追加されましたが、オフラインでもインストールできるようになりました。インストールにはさらに数秒かかりますが、常に正しいことを行います.

これがデファクト ソリューションである理由:

  • プログラムが適切にインストールされていることを確認するのは、その機能のインストーラーの責任です。
  • 最終的に SQL Server CE がインストールされていることを常に望んでいます (ユーザーが元のインストールに腹を立てていたとしても)
  • わずか 5 MB の追加です (ただし、ダウンロードは引き続き使用できます)。

        DownloadUrl="http://download.microsoft.com/download/0/5/D/05DCCDB5-57E0-4314-A016-874F228A8FAD/SSCERuntime_x86-ENU.exe"
        SourceFile="SSCERuntime_x86-ENU.exe"
        Compressed="no"
    

これが私の解決策です:

<PackageGroup Id="SQLExpressCE">
  <ExePackage
        Vital="yes"
        SourceFile="SSCERuntime_x86-ENU.exe"
        InstallCondition="NOT VersionNT64"

        //Include the exes(only about 2.5 megs each)
        //Setting this to no causes your bootstrapper to download on installation but since this will always be trying to install, it is probably best to include it
        Compressed="yes"

        //install quietly without an interface
        InstallCommand="/i /quiet /n"
        />
  <ExePackage
        Vital="yes"
        InstallCondition="VersionNT64" 
        SourceFile="SSCERuntime_x64-ENU.exe"
        Compressed="yes"
        InstallCommand="/i /quiet /n"
        />
</PackageGroup>
于 2015-07-09T17:16:12.500 に答える
1

BlackWasp が指摘したように、最善の方法は、アプリケーションと共に SqlServerCe- アセンブリを配布することです。データベースファイル(SDFファイル)のバージョンを確認したい場合は、こちらをご覧ください。

お役に立てれば。

于 2008-11-02T12:51:52.537 に答える
1

これを行うために広く受け入れられている方法は、MSI インストーラーによってレジストリに保存されている製品識別子 (GUID) を確認することです。問題の製品がインストールされていない場合は、Orca (Windows SDK の一部) というツールを使用して MSI を開き、その方法で GUID を取得できます。すべてではないにしてもほとんどのインストール ビルダーには、事前要件テストの一部としてこれを実行できるアクションまたはタスクがあり、VS2005/2008 でさえこの機能を備えています。

バージョンを確認するには、レジストリをもう一度調べたり、ファイルのバージョンを調べたりします。

于 2008-11-02T13:02:11.643 に答える