2017-04-19 129 views
1

我有一個使用.NET Core編寫的庫,目標是.netstandard2.0。根據這個site它應該與.NET 4.6.2和4.6.1使用該版本的.NET Core庫兼容。但是,當我嘗試構建我的.NET Framework庫時,出現此錯誤:.NET Framework 4.6.2中的目標.NET核心類庫類庫

Project 'c:\myproj.csproj' targets '.NETStandard,Version=v2.0'. It cannot be referenced by a project that targets '.NETFramework,Version=v4.6.2'.

我正在使用Visual Studio 2017構建庫。我在做什麼不可能/支持,我只是誤解了網站上的信息? .NET Framework庫引用System.Management.Automation並且是PowerShell模塊,但也引用了.NET核心庫中的代碼,該庫也在其他項目中使用。

+1

http://stackoverflow.com/questions/42254288/referencing-a-net-standard-library-from-a-windows-class-library/42364427#42364427 – meziantou

回答

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版本中使用預覽工具的幾種解決方法。

+0

我有同樣的問題針對netstandard1.6和netstandard1 .5也是如此,所以我認爲這不一定是2.0。我嘗試使用1.6版的類庫,並獲得了Project'C:\ myproj.csproj'目標'.NETStandard,Version = v1.6'。它不能被一個以'.NETFramework,Version = v4.6.2'爲目標的項目引用。 – hakenmt

+0

這是因爲4.6.2不支持使用發佈工具的1.6庫(1.0。*) –

+0

與.netstandard1.5具有相同的結果,該網站所說的支持4.6.2。 – hakenmt

2

我通過在標籤把這個解決這個問題:

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

這讓我構建.NET框架類庫引用.NET的核心工程。不是我期望的文檔,因爲它使得它看起來像.net標準是新的PCL,但它的工作原理。

相關問題