1

我正在尝试使用dotnet run --project语法运行我的项目文件,但我得到一个 NullReferenceException,如下所示:

Unhandled Exception: System.NullReferenceException: Object reference not set to an instance of an object.
   at DbUp.Engine.UpgradeEngine.PerformUpgrade()

这是我的主要内容:

static int Main()
{
    var connectionString =
        "Data Source=.;" +
        "Initial Catalog=MyTable;" +
        "User id=SA;" +
        "Password=<mypasswordhere>;";

    var upgrader =
        DeployChanges.To
            .SqlDatabase(connectionString)
            .WithScriptsEmbeddedInAssembly(Assembly.GetExecutingAssembly())
            .LogToConsole()
            .Build();

    var result = upgrader.PerformUpgrade();

    if (!result.Successful)
    {
        Console.ForegroundColor = ConsoleColor.Red;
        Console.WriteLine(result.Error);
        Console.ResetColor();
        return -1;
    }

    Console.ForegroundColor = ConsoleColor.Green;
    Console.WriteLine("Success!");
    Console.ResetColor();
    return 0;
}

使用将实例Console.WriteLine(upgrader)打印DbUp.Engine.UpgradeEngine到控制台。

我正在使用dbup-coredbup-sqlserver包。我猜这是一个依赖问题,因为如果我在 Visual Studio 中运行一切正常。

这是我在 Powershell 中使用的命令:

dotnet run --project <full path to my .csproj file>
4

2 回答 2

1

对于其他任何人,降级到 DBUp 4.2.0 为我解决了这个问题

于 2020-09-27T16:31:35.197 回答
0

DbUp 似乎已在 v4.5.0 中解决了该问题。所以升级dbup-sqlserver到这个版本也可以修复异常。

于 2021-06-29T07:18:20.550 回答