2

ストレージにカスタム データベースを使用する WPF デスクトップ アプリケーションがあります。セットアップ プロジェクト (Visual Studio 2008 から) を準備する必要があります (フル セットアップ、ClickOnce ではありません)。

アプリケーションの前提条件のリストに を追加すると、アプリケーションのセットアップ中にインストールされます。

私の質問は、セットアップ中にスクリプトを実行して、アプリケーションが必要とするデータベースを作成するにはどうすればよいですか? または、セットアップ中にデータベースをクライアント マシンに復元するにはどうすればよいですか?

関連するもう 1 つの質問ですが、クライアント マシンに既に存在する場合はどうなりますか? インスタンス名と接続データを検出する方法は? そして、必要に応じて、エンティティフレームワークがそのデータベースに接続するために使用する接続文字列を変更するにはどうすればよいですか?

ありがとう、エド

4

1 に答える 1

3

一般に、SQL Server Express Edition は、ローカル データベースには適していません。これは、多くのリソースを使用し、サービスとして実行することを好むサーバー クラスのエンジンです (そのため、アプリが実行されていないときでも、これらのリソースを使い果たします)。つまり、サーバーに属しています。

SQL Server Express がデスクトップで使用されているのを私が見た唯一の場所は、Microsoft Small Business Accountingアプリの一部です。この場合、通常、そのプログラムを主な目的が会計を行うマシンにインストールします。仕事。

すべきことは、デスクトップまたは SQL Server Compact Edition、Sqlite、さらには Access などのインプロセス クラス エンジンを使用することです。これにより、展開も大幅に簡素化されます。

これを押し進める場合は、インストーラーがシステム上に SQL Server の新しいインスタンスを作成することを知っておいてください。SQL Server はこれで問題ありません。ただし、アプリの接続文字列でそれを考慮する必要があり、それはもう少し複雑になる可能性があります。さらに、データベースをセットアップするには、いくつかのオプションがあります。

  • アプリの初回起動時にクライアント コードから作成する
  • カスタム インストーラー アクションを使用して作成します (msi パーミッションのため、正しく取得するのは困難です)。
  • ビルド前の *.mdf ファイルを配布し、カスタム インストーラー アクションまたはアプリの初回起動時に添付します。
于 2009-06-10T21:09:13.753 に答える