今までFluentMigratorはコマンドプロンプトから起動していましたが、少々面倒でした。
そこでVisualStudioで使う方法がないかを探したところ、以下のブログがありました。
Launch FluentMigrator from within Visual Studio - Thomas Van Machelen's adventures in code
しかし、MS Accessで試してみて悩んだところがあったため、メモを残しておきます。
環境
- .NET Framework 4.5
- FluentMigrator 1.3.0.0
- MS Access (*.accdb)
流れ
大まかな流れは上記のブログポストと同じです。
NuGetでインストール
今回は Fluent Migrator Tools
をインストールします。
プロジェクトへ追加
必要なライブラリをプロジェクトへ追加します。
プロジェクトの上で右クリック、追加 -> 既存の項目の追加を選択し、Migrate.exe
とFluentMigrator.Runner.dll
をリンクとして追加
します。
なお、MS Access x86版をインストールした端末で実行しようとすると、「'Microsoft.ACE.OLEDB.12.0' プロバイダはローカルのコンピュータに登録されていません」エラーが発生しました。
どこかで見たようなエラーだと思って探してみると、自分のブログに書いてありました。
'Microsoft.ACE.OLEDB.12.0' プロバイダはローカルのコンピュータに登録されていません - メモ的な思考的な
そのため、AnyCPU
フォルダのものではなく、x86
フォルダのライブラリを追加してみたところ、問題なく動作しました。
ちなみに、FluentMigratorのx86版は以下のところにありました。
path\to\project_root\packages\FluentMigrator.Tools.1.3.0.0\tools\x86\40
リンクして追加したファイルのプロパティ変更
続いて、リンクとして追加した上記2ファイルのプロパティを以下の通りに変更します。
プロパティ | 値 |
---|---|
出力ディレクトリにコピー | 常にコピー |
ビルドアクション | なし |
出力ディレクトリに常にコピーする
とすることで、FluentMigratorのライブラリを使えるようになります。
また、ビルドアクションをなし
にしないと、VisualStudioに以下の警告が残ったままになります。
MSB3178: アセンブリ ‘‘ はファイルとして正しく指定されていません。 | あいしん スタッフぶろぐ
外部ツールの設定内容
メニューのツール > 外部ツール にて、外部ツールを追加します。
なお、外部ツールの引数($(BinDir)
など)として設定可能なものは、以下に記載がありました。
外部ツールの引数 - MSDN
参考ブログと異なり、今回は接続文字列を外部コマンド引数として与えてみました。
項目 | 値 |
---|---|
タイトル | Development_FluentMigrator_Up |
コマンド | $(BinDir)\Migrate.exe |
引数 | --conn "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=\path\to*.accdb" --provider jet --a $(TargetName)$(TargetExt) --verbose=true |
初期ディレクトリ | $(BinDir) |
設定後、OKボタンを押すと
このコマンドは有効な実行ファイルではありません。コマンドを変更しますか?
と表示されますが、参考ブログに従い、 いいえ
を選択します。
ここまでで、VisualStudioのメニューのツールの下に「Development_FluentMigrator_Up」が表示され、FluentMigratorを実行できるようになります。
なお、今回はFluentMigratorのMigrateだけを記載しましたが、同じ方法でRollbackも用意しておくと便利です。
ショートカットを作成する
ショートカットを作れば手軽にマイグレーションできるため、作成しておきます。
メニューより、 ツール > オプション を選択します。
オプション画面では、左側の 環境 > キーボード を選択します。
右側に設定画面が出るため、
- 「以下の文字列を含むコマンドを表示」に
ツール.外部コマンド
を入力 - 外部コマンド1が一番上の外部コマンドに該当するようなので、
ツール.外部コマンド1
を選択し、ショートカットキー欄でCtrl + K
、M
の順で入力 - よければ、「割り当て」ボタンを押す
- 最後に「OK」ボタンを押す
と設定します。
参考: 方法: アクセス キーとショートカット キーを外部ツールに割り当てる *1
あとは、ショートカットキーを押して実行すると、出力ウィンドウにFluentMigratorのログが表示されます。
*1:「このドキュメントはプレビュー版であり、後のリリースで変更されることがあります」と記載がありますが、正式版っぽいのは機械翻訳で分かりにくかったです - 方法: Visual Studio から外部ツールを実行する - MSDN