我有一个EF Core数据层项目,它是一个更大的解决方案的一部分。目标:
- 输出类型=类库
- 。. NET 6.0 (Windows)
- 目标OS版本= 10.0.19041.0
- 支持的OS版本= 10.0.19041.0
它在Visual Studio中以正常方式成功构建,但是当作为(例如)在包管理器控制台中发出'dotnet ef migrations list'命令的一部分构建时,它会失败:
应用程序依赖项清单(DataProvider2.deps.json)中指定的程序集未找到:
package: 'runtimepack.Microsoft.Windows.SDK.NET。Ref', version: '10.0.19041.25'
path: 'Microsoft.Windows.SDK.NET.dll'
我试过了
- 将数据项目设置为启动项目
- 删除其他项目,使其成为解决方案中的唯一项目。
我不明白的是它从哪里得到'10.0.19041.25"。我在任何元数据文件中都找不到。我不能安装Nuget包(dotnet add package Microsoft.Windows.SDK.NET.Ref --version 10.0.19041.25
),因为它的目标是。net框架。
这个引用还能从哪里来?
一如既往启蒙是后你后一个问题。
我创建了一个新项目,并将所有代码复制到其中,并验证它可以与EF Core命令一起工作。然后我比较了。csproj文件。
显然这是不好的:
<TargetFramework>net6.0-windows10.0.19041.0</TargetFramework>
但这是好的:
<TargetFramework>net6.0</TargetFramework>
如果这对其他人有帮助的话。