我正在尝试在我的 debian 8 服务器上运行我的 dotnet 核心应用程序。我的应用程序一分为二。
- 控制台应用
- 数据库访问 dll
我按照说明在Microsoft DotNet网站上安装了运行时。
当我启动控制台应用时,实体框架核心会引发异常。
异常消息:
"System.Runtime.Versioning.BinaryCompatibility "的类型初始值设定项引发了异常。
内部异常消息:
无法加载文件或程序集"System.Runtime.InteropServices, Version=4.1.1.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'。找到的程序集的 m anifest 定义与程序集引用不匹配。(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.CoreProject.Core.csproj" />
<ProjectReference Include="..Project.DatabaseProject.Database.csproj" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="Ether.Network" Version="1.1.7" />
</ItemGroup>
</Project>
和我的项目数据库配置:
<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,但仍然存在相同的问题。
你知道问题是什么吗?
找到了解决方案。
我已将Microsoft.EntityFrameworkCore
1.1包添加到我的Project.Database
项目中,并删除了Pomelo.EntityFrameworkCore.MySql
并删除了两行:
<PackageTargetFallback>$(PackageTargetFallback);dnxcore50</PackageTargetFallback>
<RuntimeFrameworkVersion>1.0.4</RuntimeFrameworkVersion>
从"我的应用"项目配置。
它现在可以工作了。