3

保留中の移行がある場合は、MSBuildを介してビルドプロセスを停止したいと思います。

ただし、プロジェクトのビルド中にMigrateターゲットをトリガーしたくありません。

では、Migratordotnetで保留中の移行のみを確認するにはどうすればよいですか?
ビルドプロセスを停止するためのフラグとして使用したいだけです。

前もって感謝します !

4

2 に答える 2

1

保留中の移行があるかどうかを確認できるようにするためのコードを示すこの他の質問を確認してください。このコードを実行し、使用可能な1つ以上の移行が返された場合は、ターゲットを終了するようにMSBuildでターゲットを設定することは非常に可能です。

他の質問のコードをまとめるコンソールアプリの基本的なコードを次に示します。移行が利用可能かどうかにかかわらず、コンソールウィンドウにメッセージを書き込むだけです。あなたはそれをあなたのニーズに拡張する必要があるでしょう、しかしそれはうまくいくはずです。 TestMigration1移行が行われるアセンブリ内の移行クラスの1つに置き換える必要があります。明らかに、コンソールアプリからそのプロジェクトへの参照を作成する必要があります。

internal class Program {
    private static void Main(string[] args) {
        Assembly asm = Assembly.GetAssembly(typeof (TestMigration1));
        const string myConnectionString =
            "Data Source=myServerAddress;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;";
        ITransformationProvider provider = ProviderFactory.Create("SqlServer", myConnectionString);
        var loader = new MigrationLoader(provider, asm, false);
        List<long> availableMigrations = loader.GetAvailableMigrations();

        Console.WriteLine(availableMigrations.Count > 0 ? "Migrations available" : "No migrations");
    }
}
于 2011-08-07T02:39:01.387 に答える
0

Migratordotnetではサポートされていないと思います!

それらは、移行を実行することを目的としたMSBuildのターゲットを1つだけ提供します。したがって、移行を確認するためにMSBuildと対話する方法は他にありません。

于 2011-08-02T04:32:57.770 に答える