我可以使用没有.net标准的较新的System。*程序集吗?

问题描述 投票:0回答:1

我们已将其中一个Web项目升级到ASP.NET Core 2.0,并且由于程序集版本不匹配,现在在其他项目中出现错误。我正在尝试将所有冲突的程序集升级到最高版本。

例如,以前版本的System.Collections.Immutable nuget包是1.3.1,但ASP.NET Core 2项目引用的版本是1.4.0版。所以我尝试在引用System.Collections.Immutable的.csproj文件中更改它:

<ItemGroup>
    <PackageReference Include="System.Collections.Immutable" Version="1.4.0" />
</ItemGroup>

但是,这会导致编译错误:

此项目使用的Microsoft.NET.Sdk版本不足以支持对面向.NET Standard 1.5或更高版本的库的引用。请安装.NET Core SDK 2.0或更高版本。

首先,我确实安装了.NET Core 2.0 SDK。谷歌搜索周围有一些建议,我将<DependsOnNETStandard>属性添加到csproj文件并引用NETStandard.Library。但是,我不能这样做,因为我们的代码充分利用了.NET Framework,包括不在netstandard中的东西。

我怎样才能让它发挥作用?

仅供参考,我们使用的是Visual Studio 15.3.3和.NET 4.6.2。

.net .net-core .net-standard
1个回答
0
投票

将DependsOnNETStandard添加到csproj文件和对NETStandard.Library的引用不会破坏与完整框架的兼容性。我目前正在开发一个完全符合这一要求的项目 - 针对.NET Framework 4.6.1的ASP.NET Core 2.0 Web应用程序,引用.NET Standard和.NET Framework类库以及许多OOB .NET Standard软件包。

© www.soinside.com 2019 - 2024. All rights reserved.