【问题标题】:Installing Entity Framework Core 2.0 in a .NET Framework Class Library Project Yields Invalid References在 .NET Framework 类库项目中安装 Entity Framework Core 2.0 会产生无效引用
【发布时间】:2018-02-06 01:10:29
【问题描述】:

使用 Visual Studio 2017 (15.3.2)

  • 创建 .NET Framework 类库 (4.6.2)
  • 添加 NuGet Microsoft.EntityFrameworkCore 2.0

您收到对System.Reflection 和其他人的无效引用。

但是,当我使用 Entity Framework 的某些功能时,我可以在更复杂的场景中进行编译,但我会遇到缺少标准 System.* 库的运行时异常。

我尝试先添加NetStandard.Library,然后再添加Entity Framework Core 2,但我遇到了同样的问题。

我必须使用 .NET Framework(类库),因为这是一个引用 ASP.NETCore2/NETFramework 网站的单元测试项目。

我应该做什么的任何线索?

【问题讨论】:

  • 如果我在此处回答的 csproj 文件修改有效,您能试试吗?:stackoverflow.com/a/43996389/784387
  • @MartinUllrich 成功了,谢谢你,应用程序正在运行,但是,我收到关于参考的警告。我还想知道是否有更好的方法,因为所有这些引用看起来都不自然。
  • 如果您发布 msbuild 发出的实际警告(输出窗口或控制台构建的输出)会有所帮助
  • @MartinUllrich 这是一个简单的“未找到参考”,但是,当我应用您的建议时,它正在工作,但我得到:Microsoft.Common.CurrentVersion.targets(2099,5):警告MSB3836:“System.Runtime,Culture=neutral,PublicKeyToken=b03f5f7f11d50a3a”上的显式绑定重定向与自动生成的绑定重定向冲突。考虑将其从应用程序配置文件中删除或禁用自动生成的绑定重定向。该版本会将其替换为:“”。
  • 那么,按照警告说的做有帮助吗?从 App.config 中删除绑定重定向,因为它们不再需要?

标签: c# visual-studio-2017 entity-framework-core .net-core-2.0


【解决方案1】:

这可以通过让 MSBuild 自动生成必要的绑定重定向来解决,方法是在 csproj 文件中显式设置这两个属性(您可以将 <ItemGroup> 作为根 <Project> 元素下方的子元素放置或添加到退出 <ItemGroup> 而没有 Condition= 属性):

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

请注意,如果您已经有一个包含绑定重定向的 App.config,这可能会发出警告。您可以删除这些重定向。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 1970-01-01
    • 2019-01-18
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多