0

Windows アプリケーションをクライアントの場所にインストールしたいと考えています。マルチユーザー アプリケーションです。1 台のサーバーで 10 台のシステム。そのため、10 台のシステムすべてにクライアント セットアップをインストールし、サーバー システムにサービス セットアップをインストールします。

クライアントサーバーでデータベースを保護する方法は? VS2010 と SQL Server 2008 R2 を使用しています。SQL Server Management Studio Express をインストールせずに、データベースをインストールする方法を教えてください。また、サービス セットアップでデータベースを追加する方法を教えてください。このタイプのアプリケーションの例を誰か教えてもらえますか?

4

1 に答える 1

0

Windows インストーラーには、アプリケーションと共にデータベースを展開するためのすぐに使用できるサポートがありません。展開中にデータベースを作成し、MSI にプラグインする独自のコンポーネントを作成する必要があります。私は自分のプロジェクトで同じことをしました。手順に従ってください。

Creating database with Console App

  1. まず、Windows インストーラーのことは忘れてください。
  2. コンソール アプリケーションを作成します。
  3. SMO(SQL server Management Object)または単純な Sql コマンドを使用してスクリプトを実行するメソッドを追加します。
  4. ここで、.sql ファイルを読み取って SQL サーバーで実行できる私の回答を確認してください。
  5. あなたがしなければならないことは、実行時にデータベースを作成できる.sqlスクリプトファイルを保持することです.
  6. コンソール アプリにあるメソッドにそのファイル パスを渡す必要があります。

Executing console app during the installation

  1. これで、実行時にデータベースを作成できるコンソール アプリができました。ただし、正しいスクリプト ファイル パスがメソッドに渡された場合に限ります。
  2. このコンソール exe と sql スクリプト ファイルを MSI パッケージに追加します。したがって、これらは両方とも、アプリケーションのインストール フォルダーの下に配置されます。
  3. プロジェクトにインストーラー クラスを追加します。
  4. インストール メソッド内で、コンソール exe ファイルを実行するだけです。

Code

public override void Install(IDictionary stateSaver)
{
   base.Install(stateSaver);

   Process process = new Process();
   ProcessStartInfo info = new ProcessStartInfo();
   process.StartInfo = info;

   info.FileName = Path.Combine(this.Context.Parameters["targetdir"], "ConsoleApp.exe");
   info.UseShellExecute = false;

   process.Start();

}
于 2013-11-03T11:37:42.310 に答える