【问题标题】:Microsoft.AspNetCore.Hosting.Abstractions manifest definition does not match the assembly referenceMicrosoft.AspNetCore.Hosting.Abstractions 清单定义与程序集引用不匹配
【发布时间】:2017-12-08 00:51:25
【问题描述】:

当我在类库中运行 Entitfy 框架核心命令 add-migration MyMigrationName 时,出现以下错误

无法加载文件或程序集 'Microsoft.AspNetCore.Hosting.Abstractions,版本=1.1.1.0, Culture=neutral, PublicKeyToken=adb9793829ddae60' 或其其中之一 依赖关系。定位程序集的清单定义不 匹配程序集引用。 (HRESULT 异常:0x80131040)

有趣的是,我的应用程序中没有提到抽象。

这是我的 csproj

  <Project Sdk="Microsoft.NET.Sdk">

    <PropertyGroup Label="Globals">
      <SccProjectName>SAK</SccProjectName>
      <SccProvider>SAK</SccProvider>
      <SccAuxPath>SAK</SccAuxPath>
      <SccLocalPath>SAK</SccLocalPath>
    </PropertyGroup>

    <PropertyGroup>
      <TargetFramework>net452</TargetFramework>
      <AssemblyName>MyProjectName</AssemblyName>
      <OutputType>Library</OutputType>
      <PackageId>MyProjectName</PackageId>
      <NetStandardImplicitPackageVersion>1.6.0</NetStandardImplicitPackageVersion>
      <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute>
      <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute>
      <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute>
      <RootNamespace>MyProjectName</RootNamespace>
    </PropertyGroup>
    <ItemGroup>
      <None Update="appsettings.json">
        <CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
      </None>
    </ItemGroup>
    <ItemGroup>
      <PackageReference Include="DocumentFormat.OpenXml" Version="2.5.0" />
      <PackageReference Include="Microsoft.AspNetCore.Identity.EntityFrameworkCore" Version="1.1.2" />
      <PackageReference Include="Microsoft.CSharp" Version="4.3.0" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="1.1.2" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.SqlServer" Version="1.1.2" />
      <PackageReference Include="Microsoft.EntityFrameworkCore.Tools" Version="1.1.1" />
      <PackageReference Include="Microsoft.Extensions.Configuration.Json" Version="1.1.2" />
      <PackageReference Include="System.Collections" Version="4.3.0" />
      <PackageReference Include="System.Linq" Version="4.3.0" />
      <PackageReference Include="System.Runtime" Version="4.3.0" />
      <PackageReference Include="System.Threading" Version="4.3.0" />
    </ItemGroup>
  <ItemGroup Condition=" '$(TargetFramework)' == 'net452' ">
    <Reference Include="System" />
    <Reference Include="Microsoft.CSharp" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.EntityFrameworkCore.Tools.DotNet" Version="1.0.0" />
  </ItemGroup>
</Project>

【问题讨论】:

    标签: .net-core entity-framework-core


    【解决方案1】:

    为了让 NuGet 将适当的绑定重定向添加到类库项目,您需要将以下内容添加到您的 *.csproj 文件中。

    <PropertyGroup>
      <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
      <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType>
    </PropertyGroup>
    

    【讨论】:

    • 为我们工作,但它是如何在幕后工作的?我们在使用 AspNetCore.Identity 和另一个 EFCore 迁移项目时遇到了类似的问题,并且由于某种原因,当从 PCM 运行 Update-Database 时,它会寻找 System.Data.Sql v4.1.XX,而 EFCore 来了与 System.Data.Sql v4.3.XX 捆绑为什么首先会使用错误的绑定?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    • 2018-10-13
    • 1970-01-01
    • 2020-12-26
    • 1970-01-01
    • 2011-08-20
    相关资源
    最近更新 更多