Windows インストーラーには、アプリケーションと共にデータベースを展開するためのすぐに使用できるサポートがありません。展開中にデータベースを作成し、MSI にプラグインする独自のコンポーネントを作成する必要があります。私は自分のプロジェクトで同じことをしました。手順に従ってください。
Creating database with Console App
- まず、Windows インストーラーのことは忘れてください。
- コンソール アプリケーションを作成します。
SMO(SQL server Management Object)
または単純な Sql コマンドを使用してスクリプトを実行するメソッドを追加します。
- ここで、.sql ファイルを読み取って SQL サーバーで実行できる私の回答を確認してください。
- あなたがしなければならないことは、実行時にデータベースを作成できる.sqlスクリプトファイルを保持することです.
- コンソール アプリにあるメソッドにそのファイル パスを渡す必要があります。
Executing console app during the installation
- これで、実行時にデータベースを作成できるコンソール アプリができました。ただし、正しいスクリプト ファイル パスがメソッドに渡された場合に限ります。
- このコンソール exe と sql スクリプト ファイルを MSI パッケージに追加します。したがって、これらは両方とも、アプリケーションのインストール フォルダーの下に配置されます。
- プロジェクトにインストーラー クラスを追加します。
- インストール メソッド内で、コンソール 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();
}