我有一个包含 ASP.NET Web API 项目的多项目解决方案,所有项目最初都是在 >NET Framework 4.7.2 中构建的。我将解决方案中的一个类库项目更改为多目标:
<TargetFrameworks>net472;netstandard2.1</TargetFrameworks>
我完成了所有工作(为目标框架和 #if NET472_OR_GREATER 整个代码中的语句指定不同的 nuget 包)并且能够构建它。使用 if 语句和目标 nuget 包,该项目对于 net472(仅针对 netstandard 的差异)与多目标之前完全相同。
我已更改 .csproj 文件中引用此项目的所有其他项目的项目引用,如下所示:
<ProjectReference Include="..\MyProject\MyProject.csproj">
<SetTargetFramework>TargetFramework=net472</SetTargetFramework>
<SkipGetTargetFrameworkProperties>true</SkipGetTargetFrameworkProperties>
</ProjectReference>
然而,当我运行 Web API 项目(成功构建)时,我得到了错误:
无法加载文件或程序集 'netstandard, Version=2.1.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' 或其依赖项之一。该系统找不到指定的文件。
我究竟做错了什么?Web API 项目应该不需要 .NET Standard 2.1,对吧?