首页 > 解决方案 > Nuget 包是否可以覆盖框架版本?

问题描述

在我的项目中,我有一个使用 System.Net.Http.dll 的 nuget 包“package1”(来自 .net framework 4.6.2 的参考 4.0.0.0)。我还有一个引用 System.Net.Http.dll 的 nuget 包“package2”(nuget 包 System.Net.Http 4.3.4 的名称)。

如何让我的包“package2”通过 nuspec 文件覆盖 bin 目录中的旧版本框架?我无权访问包代码“package1”,只能访问包代码“package2”。

包 ICI.Doc.WebApi.Cliente 中的 nuspec:

<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
  <metadata>
    <id>$Id$</id>
    <version>$Version$</version>
    <title>$Title$</title>
    <authors>$Authors$</authors>
    <owners>$Owners$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>$Description$</description>
    <summary>$Summary$</summary>
    <releaseNotes>$ReleaseNotes$</releaseNotes>
    <copyright>Copyright ©  2019</copyright>
    <dependencies>
      <dependency id="Microsoft.Rest.ClientRuntime" version="0.9.6" />
      <dependency id="Newtonsoft.Json" version="12.0.2" />
      <dependency id="System.Net.Http" version="4.3.4" />
      <dependency id="System.Security.Cryptography.Algorithms" version="4.3.0" />
      <dependency id="System.Security.Cryptography.Encoding" version="4.3.0" />
      <dependency id="System.Security.Cryptography.Primitives" version="4.3.0" />
      <dependency id="System.Security.Cryptography.X509Certificates" version="4.3.0" />
    </dependencies>
  </metadata>
  <files>
    <file src="bin\Release\*.*" target="lib\net462" />
  </files>
</package>

Grh.Negocio 中的 project.json:

{
  "version": "2.0.0.1",
  "dependencies": {
    "Grh": "*",
    "Grh.Dados": "*",
    "ICI.Doc.WebApi.Cliente": "1.0.5.10",  //references nuget System.Net.Http 4.3.4
    "ICICore.Seguranca": "3.1.0"  //references frameworkAssembly System.Net.Http 4.0.0.0
  },
  "frameworks": {
    "net462": {
    }
  }
}

标签: c#packagenuget

解决方案


当您安装新版本时,这已自动完成。同样,当您安装包时,包依赖关系会自动解决。


推荐阅读