2017-05-17 29 views
1

我有一個類庫,應該被打包成一個nuget包。這是其目前的csproj:如何將.net項目正確定位到netcoreapp/netstandard中?

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <TargetFrameworks>netstandard1.6;net40;netcoreapp1.0</TargetFrameworks> 
    <PackageId>FooPackage</PackageId> 
    <PackageVersion>1.0.0</PackageVersion> 
    <Authors>Jean Lourenço</Authors> 
    <Title>FooPackage</Title> 
    <Description>FooPackage</Description> 
    <Copyright>Copyright 2017</Copyright> 
    <PackageLicenseUrl>https://opensource.org/licenses/MIT</PackageLicenseUrl> 
    <PackageProjectUrl>https://github.com/</PackageProjectUrl> 
    <PackageReleaseNotes>Initial release</PackageReleaseNotes> 
    </PropertyGroup> 

    <ItemGroup> 
    <PackageReference Include="System.ValueTuple" Version="4.3.1" /> 
    </ItemGroup> 

我創建它作爲一個netstandard類庫,然後手動設置<TargetFrameworks>其目標netstandard1.6;net40;netcoreapp1.0。然後我用dotnet pack生成我的.nupkg

但是,當我嘗試在netcoreapp使用包,出現這種情況:

Package FooPackage 1.0.0 is not compatible with netcoreapp1.0 (.NETCoreApp,Version=v1.0). Package FooPackage 1.0.0 supports: net452 (.NETFramework,Version=v4.5.2) One or more packages are incompatible with .NETCoreApp,Version=v1.0.

這是消費應用的的csproj:

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <OutputType>Exe</OutputType> 
    <TargetFramework>netcoreapp1.0</TargetFramework> 
    </PropertyGroup> 

</Project> 

net452甚至沒有直接引用到<TargetFrameworks>,所以我不知道從哪裏來。

我想知道我在做什麼錯,以及如何正確定位這些框架。

回答

1

this thread所有我必須做的說明是:

nuget.exe locals -clear all

似乎像的NuGet不停,因爲這個名字的包的舊引用。