从.NET Framework 4.6.2类库中定位.NET核心类库

mha*_*ken 10 .net c# .net-core .net-4.6.2

我有一个使用.NET Core编写的库,目标是.netstandard2.0.根据这个站点,它应该兼容使用.NET 4.6.2和4.6.1版本的.NET Core库.但是,当我尝试构建我的.NET Framework库时,我收到此错误:

项目'c:\ myproj.csproj'的目标是'.NETStandard,Version = v2.0'.它不能被针对".NETFramework,Version = v4.6.2"的项目引用.

我正在使用Visual Studio 2017来构建库.我正在做什么不可能/支持我只是误解了网站上的信息?.NET Framework库引用System.Management.Automation并且是PowerShell模块,但也引用了.NET核心库中的代码,该代码也在其他项目中使用.

mha*_*ken 9

我将此问题放在标记中解决了这个问题:

    <TargetFrameworks>netstandard2.0;net462</TargetFrameworks>
    <TargetFrameworkIdentifier Condition="'$(_ShortFrameworkIdentifier)'=='net'">.NETFramework</TargetFrameworkIdentifier>
    <TargetFrameworkIdentifier Condition="'$(_ShortFrameworkIdentifier)'=='netstandard'">.NETStandard</TargetFrameworkIdentifier>
Run Code Online (Sandbox Code Playgroud)

这使我能够构建引用.NET核心项目的.NET Framework类库.不是我对文档的期望,因为它看起来像.netstandard是新的PCL,但它的工作原理.


Mar*_*ich 0

在撰写本文时,VS 2017 不直接支持日常构建/预览 2.0 工具。VS 2017 (15.0,15.1) 附带的 SDK 不支持 netstandard 2.0,集成的 NuGet 扩展也不支持。

请参阅https://github.com/aspnet/Announcements/issues/231,了解在当前发布的 VS 2017 版本中使用预览工具的一些解决方法。