我有一个.NET核心解决方案,包括三个部分:
现在,我需要使用业务逻辑DLL中的.NET框架NuGet包(它不在我的控制范围内)。
按照this answer中的建议,我将业务逻辑项目更改为目标.NET 4.6.1 (net461)。
然而,这迫使我对数据访问项目(这是从业务逻辑项目中引用的)做同样的事情,而且(尽管我还没有到那里),我想我也必须为这个网站项目这样做。
我认为.NET核心在很大程度上是.NET框架的一个子集,除了只需要“更大的”框架(这是可以的)之外,没有任何功能改变。然而,在重新定位我的数据访问项目之后,我现在发现还缺少一些东西。例如,它现在使用C#7值元组反对我。
虽然我可以通过NuGet包添加值元组,但我还需要进行其他更改(DataAnnotations似乎已经离开/移动了),而且我似乎正在以.NET框架的方式返回所做的一切。
有办法绕过这件事吗?我觉得我在拉一根线,最终我会回到ASP.NET MVC.
发布于 2019-01-09 18:37:56
同时将这两个框架作为目标是可能的。我在一个项目中工作,我想以.Net核心2.0为目标,但需要使用.NET框架包。
为此,打开.csproj文件,用一个新的TargetFrameworks标记替换TargetFramework标记。
<TargetFrameworks>net461;netcoreapp2.0</TargetFrameworks>
不幸的是,通过visual中的UI无法做到这一点。在进行此更改并重新加载Visual之后,目标框架将为空。
发布于 2019-01-10 12:31:20
在和@Svek聊天时,我说服自己必须放弃整个网络项目,重新开始一个老式的ASP.NET MVC网络项目(或者割腕),现在我发现情况并非如此。
以下是我认为的要点:
所以,我最终的解决办法是:
完成所有这些之后,我的项目编译并正确运行。这是一个巨大的解脱。
发布于 2019-01-10 13:10:58
另一个可能的解决方案(尽管可能不是您想要的)是将您的项目划分为较小的项目,然后业务和数据逻辑可以转换为服务(SOA - architecture)。
这似乎是“漫长的道路”,但它确实有它的最终优势,因为分离的逻辑服务和主要项目在技术和大多数其他需求方面是相互独立的。
再次,我意识到这可能不是你想要的,但我觉得这是一个有效的选择,在这里分享可能是有用的。
https://stackoverflow.com/questions/54116209
复制相似问题