【问题标题】:Any way to run dotnet-ef from a published app从已发布的应用程序运行 dotnet-ef 的任何方式
【发布时间】:2023-03-04 04:04:01
【问题描述】:

我正在从与dotnet publish 打包的 Dotnet Core 2.0 WebApp 构建一个 docker 容器,但以这种方式发布不会复制Microsoft.EntityFrameworkCore.Tools.DotNet 中启用dotnet-ef 命令的扩展。

具体来说,我想在容器中运行dotnet ef 命令,但是我得到了这个错误:

No executable found matching command "dotnet-ef"

我的 .csproj 文件包含这个,所以 dotnet-ef 在主机上可以正常工作:

<DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="2.0.0" />

有没有办法从使用 dotnet publish 打包的 dotnet 应用程序运行迁移?

【问题讨论】:

标签: c# docker .net-core entity-framework-core


【解决方案1】:

根据@bricelam 的建议和Ben Day's blog entry,这适用于Linux 上的dotnet 2.x:

$ dotnet exec \
    --depsfile Api.deps.json \
    /usr/share/dotnet/sdk/NuGetFallbackFolder/microsoft.entityframeworkcore.tools.dotnet/2.0.2/tools/netcoreapp2.0/ef.dll \
    database update \
    --assembly ./MyDllWithMigrations.dll \
    --startup-assembly Api.dll \
    --project-dir . \
    --verbose

(这是基于microsoft/aspnetcore-build 基础镜像。)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-17
    • 2020-04-23
    • 1970-01-01
    • 1970-01-01
    • 2019-08-01
    相关资源
    最近更新 更多