首页 > 解决方案 > Nuget 规范 AspNet 与 AspNetCore

问题描述

我正在创建一个库,我希望根据依赖于它的项目类型具有不同的行为。

以下是我要分离的 3 种类型的项目:

这是我的csproj

<ItemGroup Condition=" '$(TargetFramework)' == 'netstandard2.0' ">
  <PackageReference Include="Microsoft.AspNetCore.WebUtilities" Version="2.2.0" />
  <PackageReference Include="System.Net.Http" Version="4.3.4" />

  <Content Remove="NetCore\**" />
  <Compile Remove="NetCore\**" />
  <EmbeddedResource Remove="NetCore\**" />
  <None Remove="NetCore\**" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp2.1' ">
  <PackageReference Include="Microsoft.AspNetCore.All" />
  <PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.1.1" />

  <Content Remove="NetFramework\**" />
  <Compile Remove="NetFramework\**" />
  <EmbeddedResource Remove="NetFramework\**" />
  <None Remove="NetFramework\**" />
</ItemGroup>

<ItemGroup Condition=" '$(TargetFramework)' == 'netcoreapp3.1' ">
  <FrameworkReference Include="Microsoft.AspNetCore.App" />

  <Content Remove="NetFramework\**" />
  <Compile Remove="NetFramework\**" />
  <EmbeddedResource Remove="NetFramework\**" />
  <None Remove="NetFramework\**" />
</ItemGroup>

如您所见,我为每个要定位的平台都有条件构建。

这是我的依赖项nuspec

<dependencies>
    <group targetFramework="netstandard2.0">
        <dependency id="TweetinviAPI" version="5.0.0" />
        <dependency id="Microsoft.AspNetCore.WebUtilities" version="2.2.0" />
        <dependency id="System.Net.Http" version="4.3.4" />
    </group>
    <group targetFramework=" netcoreapp2.1">
        <dependency id="TweetinviAPI" version="5.0.0" />
        <dependency id="Microsoft.AspNetCore.All" />
        <dependency id="Microsoft.AspNetCore.Http.Abstractions" version="2.1.1" />
    </group>
    <group targetFramework="netcoreapp3.1">
        <dependency id="TweetinviAPI" version="5.0.0" />
        <dependency id="Microsoft.AspNetCore.App" />
    </group>
</dependencies>

将 nuget 包添加到任何项目时,我收到以下错误:

TweetinviAPI.AspNet 5.0.0 does not provide an inclusive lower bound for dependency Microsoft.AspNetCore.App. An approximate best match of Microsoft.AspNetCore.App 2.1.0 was resolved.  WebApplication

TweetinviAPI.AspNet 5.0.0 does not provide an inclusive lower bound for dependency Microsoft.AspNetCore.All. An approximate best match of Microsoft.AspNetCore.All 2.0.0 was resolved.  WebApplication-2.1
TweetinviAPI.AspNet 5.0.0 does not provide an inclusive lower bound for dependency Microsoft.AspNetCore.App. An approximate best match of Microsoft.AspNetCore.App 2.1.0 was resolved.  

This version of Microsoft.AspNetCore.App is only compatible with the netcoreapp2.1 target framework. Please target netcoreapp2.1 or choose a version of Microsoft.AspNetCore.App compatible with netcoreapp3.1.

项目不工作,有什么想法让这个工作?

谢谢,林维

标签: c#asp.netnugetnuget-packagenuget-spec

解决方案


对于任何有兴趣的人,这就是我最终要做的。

<dependencies>
    <group targetFramework="netstandard2.0">
        <dependency id="TweetinviAPI" version="5.0.0" />
        <dependency id="Microsoft.AspNetCore.WebUtilities" version="2.2.0" />
        <dependency id="System.Net.Http" version="4.3.4" />
    </group>
    <group targetFramework="netcoreapp2.1">
        <dependency id="TweetinviAPI" version="5.0.0" />
        <dependency id="Microsoft.AspNetCore.Http" version="2.1" />
        <dependency id="Microsoft.AspNetCore.Http.Abstractions" version="2.1" />
        <dependency id="Microsoft.Extensions.Options" version="2.1" />
    </group>
    <group targetFramework="netcoreapp3.1">
        <dependency id="TweetinviAPI" version="5.0.0" />
    </group>
</dependencies>

推荐阅读