EF6 库迁移到 .net 标准 2.1 - .dll 中不包含 EDMX 资源
EF6 library migration to .net standard 2.1 - EDMX resources not included in .dll
我有一个完全用 .Net 编写的库,我必须将其迁移到 .Net Standard 2.1 - 我已经在较小的项目上验证了我的过程,从编码和 .csproj 的角度来看,这就是全部很好。
问题: 这个库使用 EF6 围绕第 3 方 SQL 数据库,所以我必须坚持 Database-First 模型,因此我需要在我的连接字符串中提供元数据以显示 .csdl、.msl 和 .ssdl 资源。
该项目是多目标 .Net 4.7.2 和 .Net Standard 2.1,比较 dotPeek 中的输出我可以清楚地看到新输出中缺少这些资源:
我试过的:
仔细检查 "Metadata Artifact Processing" 是否设置为 "Embed in Output Assembly"。
已验证 .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>
它刚刚开始正确地包含资源...很奇怪但它有效!
我有一个完全用 .Net 编写的库,我必须将其迁移到 .Net Standard 2.1 - 我已经在较小的项目上验证了我的过程,从编码和 .csproj 的角度来看,这就是全部很好。
问题: 这个库使用 EF6 围绕第 3 方 SQL 数据库,所以我必须坚持 Database-First 模型,因此我需要在我的连接字符串中提供元数据以显示 .csdl、.msl 和 .ssdl 资源。
该项目是多目标 .Net 4.7.2 和 .Net Standard 2.1,比较 dotPeek 中的输出我可以清楚地看到新输出中缺少这些资源:
我试过的:
仔细检查 "Metadata Artifact Processing" 是否设置为 "Embed in Output Assembly"。
已验证 .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>
它刚刚开始正确地包含资源...很奇怪但它有效!