我正在使用与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应用程序运行迁移?
答案 0 :(得分:0)
根据@ 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
基本图片。)