【发布时间】:2021-07-03 09:39:11
【问题描述】:
这个问题与这个问题几乎相同: Is There a Way to Force a Project Reference to .NET Standard Project to a Specific TargetFramework 除了我不想做任何奇特的事情,比如强制框架项目使用标准项目。
与那个问题类似,我有两个多目标项目,一个类库声明:
<TargetFrameworks>netstandard2.1;net48</TargetFrameworks>
还有一个消费单元测试/控制台应用程序项目声明:
<TargetFrameworks>netcoreapp2.1;net48</TargetFrameworks>
第二个项目以通常的方式引用第一个:
<ProjectReference Include="..\MultiTargetProject\MultiTargetProject.csproj" />
当我构建解决方案时,GetReferenceNearestTargetFrameworkTask 会生成以下警告:
NU1702 | ProjectReference 'C:\source\SolutionDir\MultiTargetProject\MultiTargetProject.csproj' 是使用 '.NETFramework,Version=v4.8' 而不是项目目标框架 '.NETCoreApp,Version=v2.1' 解决的。此项目可能与您的项目不完全兼容。
现在,基于上一个问题,我看到有一种明确定义要解析哪个框架的方法,并结合一些条件属性组使用,我可以成功解析 Framework-to-Framework 和 Standard-to-核心。
我的问题是:
这是否有必要 - 我曾假设 .NET Core 项目会解析 .NET Standard 参考? GetReferenceNearestTargetFrameworkTask 的逻辑是什么? (我还没有找到任何关于行为应该是什么的明确文档。)
【问题讨论】:
标签: .net visual-studio .net-core msbuild .net-standard