NET Core在Azure Function v2上进行EF Core迁移的问题

罗汉·巴蒂亚(Rohan Bhatia)

我有一个名为项目MyApp包含实体框架的核心模式。为了从这些模型创建初始数据库,我在Visual StudioPackage Manager控制台中使用了以下命令

dotnet ef migrations -v add InitialCreate

我的项目的目录结构是这样的:

MyApp
|-bin
|   |-Debug
|   |   |-netcoreapp2.1
|   |   |  |-bin
.   .   .  |  |-...
.   .   .  |  |-MyApp.dll
.   .   .  |  |-...
           |-MyApp.deps.json
           |-MyApp.runtimeconfig.dev.json
           |-MyApp.runtimeconfig.json

问题

当我运行以上命令创建初始数据库时,弹出以下错误:

An assembly specified in the application dependencies manifest
(MyApp.deps.json) was not found:
    package: 'MyApp', version: '1.0.0'
    path: 'MyApp.dll'

因此,该命令无法找到目录MyApp.dll中的bin文件

从以下详细输出中可以清楚地看出:

PM> dotnet ef migrations -v add InitialCreate
Using project 'C:\Users\rohan\Projects\MySolution\myproject\MyApp.csproj'.
Using startup project 'C:\Users\rohan\Projects\MySolution\myproject\MyApp.csproj'.
Writing 'C:\Users\rohan\Projects\MySolution\myproject\obj\MyApp.csproj.EntityFrameworkCore.targets'...
dotnet msbuild /target:GetEFProjectMetadata /property:EFProjectMetadataFile=C:\Users\rohan\AppData\Local\Temp\tmp4BF.tmp /verbosity:quiet /nologo C:\Users\rohan\Projects\MySolution\myproject\MyApp.csproj
Writing 'C:\Users\rohan\Projects\MySolution\myproject\obj\MyApp.csproj.EntityFrameworkCore.targets'...
dotnet msbuild /target:GetEFProjectMetadata /property:EFProjectMetadataFile=C:\Users\rohan\AppData\Local\Temp\tmpEB2.tmp /verbosity:quiet /nologo C:\Users\rohan\Projects\MySolution\myproject\MyApp.csproj
dotnet build C:\Users\rohan\Projects\MySolution\myproject\MyApp.csproj /verbosity:quiet /nologo

Build succeeded.

    0 Warning(s)
    0 Error(s)

Time Elapsed 00:00:17.49
dotnet exec --depsfile C:\Users\rohan\Projects\MySolution\myproject\bin\Debug\netcoreapp2.1\MyApp.deps.json 
--additionalprobingpath C:\Users\rohan\.nuget\packages --additionalprobingpath "C:\Program Files\dotnet\sdk\NuGetFallbackFolder" 
--runtimeconfig C:\Users\rohan\Projects\MySolution\myproject\bin\Debug\netcoreapp2.1\MyApp.runtimeconfig.json 
"C:\Program Files\dotnet\sdk\2.1.700\DotnetTools\dotnet-ef\2.1.11\tools\netcoreapp2.1\any\tools\netcoreapp2.0\any\ef.dll" 
migrations add InitialCreate 
--assembly C:\Users\rohan\Projects\MySolution\myproject\bin\Debug\netcoreapp2.1\MyApp.dll 
--startup-assembly C:\Users\rohan\Projects\MySolution\myproject\bin\Debug\netcoreapp2.1\MyApp.dll 
--project-dir C:\Users\rohan\Projects\MySolution\myproject\ --language C# 
--working-dir C:\Users\rohan\Projects\MySolution\myproject --verbose --root-namespace MyApp
dotnet : Error:
At line:1 char:1
+ dotnet ef migrations -v add InitialCreate
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : NotSpecified: (Error::String) [], RemoteException
    + FullyQualifiedErrorId : NativeCommandError

  An assembly specified in the application dependencies manifest (MyApp.deps.json) was not found:
    package: 'MyApp', version: '1.0.0'
    path: 'MyApp.dll'

基本上,dll文件的路径--assembly--startup-assembly选项是不正确的这是因为(通过上述命令)生成的MyApp.deps.json包含以下内容:

{
  "runtimeTarget": {
    "name": ".NETCoreApp,Version=v2.1",
    "signature": "..."
  },
  "compilationOptions": {},
  "targets": {
    ".NETCoreApp,Version=v2.1": {
      "MyApp/1.0.0": {
        "dependencies": {
          ...
        },
        "runtime": {
          "MyApp.dll": {}
        }
      },
      ...
    }
    ...
  }
  ...
}

在这里,的runtimeJSON对象中MyApp/1.0.0包含文件相对路径,dllMyApp.dll应该是bin/MyApp.dll

我应该怎么做才能在runtimeJSON对象中写入正确的路径

大卫

我有一个非常相似的问题。经过数小时的搜索和实验,我发现了这篇文章:https : //github.com/aspnet/EntityFrameworkCore/issues/14679

将数据库内容分离到一个单独的类库项目中,然后添加IDesignTimeDbContextFactory为我修复了它。

祝好运

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

.NET Core 2.2 Azure Function v2依赖关系注入

通过VSTS进行.NET Core EF迁移

发布VS2017 .NET Core 2.0 Azure Function v2时,Blob触发器不起作用

.NET Core (v2) Azure 函数中的默认 HttpTriggerAttribute

迁移到.net core 3.1后EF OrderBy出现问题

.NET Core Azure Function 部署失败

Azure Function v2 .NET框架?

.NET Framework 到 .NET Core 迁移序列化问题

迁移到.NET Core 3.0后出现问题

ASP.NET Core:HtmlHelper扩展(迁移问题)

在ASP.Net Core中创建初始迁移的问题

Azure Functions v2从.Net Standard更改为.Net Core

通过EF迁移将ASP.NET Core部署到Azure

如何将Azure Functions v3迁移到.net Core 5.0

.NET Core 2的编码问题

.Net Core 2 FromSql 问题

从.NET Core 2.2迁移到.NET Core 3.0时发生CORS问题

Azure Devops-在Nuget软件包下从.NET Core 3.1迁移到.NET 5的兼容性问题

运行LOCALLY时,Azure函数(.Net Core上的v2)不支持QueueTrigger的BatchSize

使用Azure Function(.NET Core)下载文件

EF Core-Firebird迁移自动递增问题

迁移EF Core + ASP Identity + IdentityServer4的问题

从2.2迁移到3.1后的EF Core问题

配置ASP.Net Core以针对Thinktecture V2使用OIDC进行身份验证

尝试让ef核心迁移工作以将项目迁移到.net core 2

.NET Core 3.1 类库和 .NET Core 3.1 Azure Function V3 类库之间的“Microsoft.Extensions.Options”版本冲突

.NET标准库是否支持EF Core Add迁移?

Azure DevOps:迁移到.NET Core 3.0后管道中断

使用Application Insights在Azure上进行ASP.NET Core跟踪日志记录