2017-04-12 207 views
0

我想在我的debian 8服務器上運行我的dotnet核心應用程序。我的應用程序分爲兩部分。實體框架核心異常「System.Runtime.Versioning.BinaryCompatibility」

  • 控制檯應用程序
  • 數據庫訪問DLL

我跟着提示安裝微軟DOTNET的網站上運行。

當我啓動我的控制檯應用程序時,Entity Framework Core會引發一個異常。

異常消息:

關於 'System.Runtime.Versioning.BinaryCompatibility'

的類型初始值引發了異常。

內部異常消息:

無法加載文件或程序集 'System.Runtime.InteropServices,版本= 4.1.1.0,文化=中性公鑰= b03f5f7f11d50a3a'。定位的組件的最大定義與裝配參考不匹配。 (異常來自HRESULT:0x80131040)

這是我的應用程序是如何配置:

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

    <PropertyGroup> 
    <AssemblyTitle>Project.Login</AssemblyTitle> 
    <TargetFramework>netcoreapp1.1</TargetFramework> 
    <AssemblyName>Project.Login</AssemblyName> 
    <OutputType>Exe</OutputType> 
    <PackageId>Project.Login</PackageId> 
    <RuntimeIdentifiers>win10-x64;win7-x64;osx.10.10-x64;ubuntu.14.04-x64;ubuntu.14.10-x64;ubuntu.15.04-x64;ubuntu.15.10-x64;ubuntu.16.04-x64;ubuntu.16.10-x64;centos.7-x64;debian.8-x64;fedora.23-x64;fedora.24-x64</RuntimeIdentifiers> 
    <PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback> 
    <RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion> 
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> 
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> 
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> 
    </PropertyGroup> 

    <ItemGroup> 
    <ProjectReference Include="..\Project.Core\Project.Core.csproj" /> 
    <ProjectReference Include="..\Project.Database\Project.Database.csproj" /> 
    </ItemGroup> 

    <ItemGroup> 
    <PackageReference Include="Ether.Network" Version="1.1.7" /> 
    </ItemGroup> 

</Project> 

而且我Project.Database配置:

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

    <PropertyGroup> 
    <TargetFramework>netstandard1.6</TargetFramework> 
    <AssemblyName>Project.Database</AssemblyName> 
    <PackageId>Project.Database</PackageId> 
    <NetStandardImplicitPackageVersion>1.6.1</NetStandardImplicitPackageVersion> 
    <PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback> 
    <GenerateAssemblyConfigurationAttribute>false</GenerateAssemblyConfigurationAttribute> 
    <GenerateAssemblyCompanyAttribute>false</GenerateAssemblyCompanyAttribute> 
    <GenerateAssemblyProductAttribute>false</GenerateAssemblyProductAttribute> 
    </PropertyGroup> 

    <ItemGroup> 
    <PackageReference Include="System.Text.Encoding.CodePages" Version="4.3.0" /> 
    <PackageReference Include="Pomelo.EntityFrameworkCore.MySql" Version="1.1.0" /> 
    <PackageReference Include="System.Reflection.TypeExtensions" Version="4.3.0" /> 
    <PackageReference Include="MySql.Data.EntityFrameworkCore" Version="7.0.6-IR31" /> 
    </ItemGroup> 

</Project> 

我型動物運行時和SDK,並試圖仍然是同樣的問題。

你知道問題出在哪裏嗎?

回答

0

找到解決方案。從我的應用程序的項目配置

<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback> 
<RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion> 

我已經添加了Microsoft.EntityFrameworkCore 1.1包到我的Project.Database項目,並刪除了Pomelo.EntityFrameworkCore.MySql並刪除兩行。

它現在可以工作。