【问题标题】:How to properly target a .net project into netcoreapp/netstandard?如何将 .net 项目正确定位到 netcoreapp/netstandard?
【发布时间】:2017-10-16 06:21:15
【问题描述】:

我有一个应该打包到 nuget 包中的类库。这是它当前的 csproj:

<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 类库,然后手动将 &lt;TargetFrameworks&gt; 设置为其目标 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 甚至没有直接引用到&lt;TargetFrameworks&gt;,所以我不知道它来自哪里。

我想知道我做错了什么以及如何正确定位这些框架。

【问题讨论】:

    标签: nuget .net-core nuget-package dotnet-cli


    【解决方案1】:

    按照this thread 上的说明,我所要做的就是:

    nuget.exe locals -clear all

    似乎由于名称,nuget 保留了包的旧引用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-03-29
      • 2018-06-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多