asp.net .net 8迁移后未找到CSharpMigrationOperationGenerator和命名空间

yhxst69z  于 6个月前  发布在  .NET
关注(0)|答案(1)|浏览(145)

我正在将我们的一个项目从.net6升级到.net8,在更新Nuget软件包后,CSharpMigrationOperationGenerator再也找不到了,而且Microsoft. multityFrameworkCore.Migrations.Design似乎也找不到了。
.net8版本是8.0.100,我已经检查了文档,实际上没有什么变化:https://learn.microsoft.com/de-de/dotnet/api/microsoft.entityframeworkcore.migrations.design.csharpmigrationoperationgenerator?view=efcore-8.0

namespace My.Object.Db.Data.MigrationContext
{
    using System;
    using System.Collections.Generic;
    using Microsoft.EntityFrameworkCore.Infrastructure;
    using Microsoft.EntityFrameworkCore.Migrations.Design;
    using Microsoft.EntityFrameworkCore.Migrations.Operations;

    /// <summary>
    /// MyMigrationOperationGenerator
    /// </summary>
    public class MyMigrationOperationGenerator : CSharpMigrationOperationGenerator
    {
       .... custom code
    }
}

字符串
我使用的是Visual Studio 17.8.0,支持.net8。


的数据

f2uvfpb9

f2uvfpb91#

根据微软的说法,这个软件包Microsoft. softityFrameworkCore.Design是一个DevelopmentDependency软件包,所以你需要通过从你的.csproj文件中删除IncludeAssets属性来更改软件包的元数据。我发现升级到NET 8会自动添加这个字段,这导致了损坏。

<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="8.0.0">
    <PrivateAssets>all</PrivateAssets>
    <!--<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>-->
  </PackageReference>

字符串

相关问题