【发布时间】:2017-09-24 04:36:36
【问题描述】:
我们的开发团队有许多 .net framework 4.6 项目(VS 2015)。 我们想开始一个新的 .net 核心项目,最终部署在 linux 上。
我们已经安装了 VS 2017 和 .net core 2.0 预览版。
但是我们如何才能在这个新项目中重用现有的库项目呢?
我们研究但不清楚: - 我们需要将旧项目的目标从“.Net Framework 4.6”更改为“.NetStandard 1.x”? (并解决不兼容问题) - 或者我们可以这样使用它们? (但如何?)
谢谢
【问题讨论】:
-
据我所知,您不能像它们一样使用 .Net 桌面库,您必须针对 .Net Core 重新构建它们,并且可能需要花费一些时间 1) 使您的代码在有限的可用范围内运行设施; 2) 测试您的代码以确保其行为方式与原始 .Net 上的行为方式完全相同。例如,据我所知,LINQ 再次使用 Expression 并在 .Net 中编译为 IL,而在 .Net Core 中它被解释。这有时可能是一个明显的差异。
-
@Sergey.quixoticaxis.Ivanov:据我所知,.NET Core 不解释表达式树......从 .NET Core 2.0 开始,桌面程序集也应该可用,我相信 - 这就是计划。
-
@JonSkeet 我目前正在使用 EFCore 开发 UWP 软件,并且正在解析 LINQ 的声明来自 EFCore github 上的一位 MS 人员。也许旧版本是这样,也许它只是 .Net Native 特定的,也许我有什么问题。我不确定。我希望这个计划能很快成为现实,我们会更乐意将我们的服务器端迁移到 Linux,但我们的第一次尝试太耗时,所以我们至少暂时放弃了这个想法。
-
@Sergey.quixoticaxis.Ivanov:我可以很容易地想象这对于 UWP 来说是正确的,但对于其他平台则不然。 github.com/dotnet/corefx/issues/10470 建议它是 UWP...
-
@JonSkeet 是的,.Net Native 问题,感谢您的链接。
标签: c# .net visual-studio .net-core .net-standard