c# - EF6 库迁移到 .net 标准 2.1 - .dll 中不包含 EDMX 资源
问题描述
我有一个完全用 .Net 编写的库,我必须迁移到 .Net Standard 2.1 - 我已经在较小的项目上验证了我的流程,从编码和 .csproj 的角度来看,一切都很好。
问题:这个库使用 EF6 围绕第 3 方 SQL 数据库,所以我必须坚持Database-First模型,并且我需要在我的连接字符串中提供元数据以显示 .csdl、.msl 和 .ssdl 资源.
该项目是多目标 .Net 4.7.2 和 .Net Standard 2.1 并比较 dotPeek 中的输出我可以清楚地看到新输出中缺少这些资源:
我尝试了什么:
仔细检查“元数据工件处理”是否设置为“嵌入输出程序集”。
验证 .Net 4.7.2 输出按预期工作。
我尝试在连接字符串中指定资源,例如:
metadata=res://*/;provider=...
但这只会引发不同的错误:
Argument 'xmlReader' is not valid. A minimum of one .ssdl artifact must be supplied
任何想法将不胜感激,非常感谢。
解决方案
我以一种奇怪的方式通过交换目标框架解决了这个问题......
从:
<TargetFrameworks>net472;netstandard2.1</TargetFrameworks>
到:
<TargetFrameworks>netstandard2.1;net472</TargetFrameworks>
它刚刚开始正确地包含资源......奇怪但它有效!
推荐阅读
- symfony - 没有引擎能够使用模板
- flutter - 如何在小部件层次结构中约束 ListTile
- javascript - 错误:通过 python 子进程调用启动 NodeJS 服务器时找不到模块
- python - Python中的全局变量和函数给出错误
- bash - Bash 命令“Head”未显示我的 bed/csv 文件的某些列
- css - CSS中从上到下的动画
- c - 影响 char 上的移位运算符
- python - 我找到了一个掩码检测程序,想知道是否可以用其他东西替换 tensorflow 库
- r - R 包开发 - 如何处理包安装时的 C 库链接错误
- javascript - 如何根据选中的单选按钮禁用某些复选框?