【问题标题】:Nuget Packages dependencies issueNuget Packages依赖问题
【发布时间】:2021-03-10 15:04:01
【问题描述】:

我在一系列 NuGet 项目(Visual Studio 2019 和 NuGet 5.7.0.6726)中遇到了依赖问题。 第一个项目,包括来自 NuGet.org 的 Log4Net NuGet 包,我将它与“nuget.exe pack mx_logging.vbproj -IncludeReferencedProjects”打包,我有自己的 (MX_Logging.nupkg)。 第二个项目使用 MX_Logging,我也安装了 Log4Net,到目前为止没问题... 现在,如果我也用之前使用的相同方法打包第二个项目,它只有 MX_Logging 而不是 log4net 作为依赖项,我该如何解决这个问题?

这是第二个项目根目录下的 package.config:

<packages>
  <package id="log4net" version="2.0.8" targetFramework="net452" />
  <package id="MX_logging" version="1.2.7668.29513" targetFramework="net452" />
</packages>

非常感谢大家 ;-)

【问题讨论】:

  • 嗨亚历山德罗,关于这个问题的任何更新?
  • 关于这个问题的任何更新?我的回答对您处理问题有帮助吗?如果有帮助,请不要忘记accept it。如果没有,请随时告诉我们:)
  • 有关此问题的任何更新,请检查我的回答是否有助于您处理该问题。如果有帮助,请不要忘记accept it。如果没有,请随时告诉我们:)

标签: visual-studio nuget nuget-package dependency-management


【解决方案1】:

在我这边,当我将第二个 nuget 项目安装到一个新的 net framework 4.5.2 项目中时,它具有 log4net nuget 依赖项。

log 是第一个 nuget 项目,log1 是第二个 nuget 项目。

所以请尝试以下步骤:

1)删除第二个nuget项目的binobj文件夹。

2) clean nuget caches first或删除C:\Users\xxx\.nuget\packages下的所有缓存文件

3) 重建您的第二个 nuget 项目,然后

cd xxx\xxx\the second project folder(where exists the csproj file)

nuget spec

nuget pack xxx\xxx.csproj -IncludeReferencedProjects

4)确保第二个nuget包和第一个nuget包都在nuget package source下。

更新

我使用nuget.exe cli v5.6.0 打包nuget 项目,还使用v5.7.0 进行测试。一切正常。

其实,我猜你是否只看到了第二个 nuget 包 UI,它没有列出 log4net nuget 依赖项。

虽然没有列出log4net,但是log4net nuget依赖在lognuget包下。当您安装log1 nuget 包时,它将安装log nuget 依赖项及其log4net nuget 依赖项。而且它只是没有显示代际包的依赖关系。但是log4net nuget 包确实存在。正如我的第一张照片所示。

但是如果你还想要UI上显示的依赖,或者你的nuget包确实有问题,你可以试试这个:

修改第二个nuget项目的nuspec文件并添加这些:

 <dependencies>
      <dependency id="log4net" version="2.0.8" />
 </dependencies>

整个nuspec是这样的:

<?xml version="1.0" encoding="utf-8"?>
<package >
  <metadata>
    <id>1og1</id>
    <version>1.0.0</version>
    <title>me</title>
    ..........
    <tags>Tag1 Tag2</tags>

   <dependencies>
   <dependency id="log4net" version="2.0.8" />
   </dependencies>

  </metadata>
</package>

然后,重新打包您的第二个 nuget 项目。

【讨论】:

  • 非常感谢您的回答,但没有任何改变:/
  • 我想知道第二个 nuget 包的 UI 是否确实显示了 log4net 依赖项。如果是这样,那是正常行为,并且 UI 不会显示跨代包的依赖关系。所以你不必担心这一点。如果您仍然想要显示,请查看我的更新答案:)
  • @Alessandro,有关于这个问题的更新吗?我的回答对您处理问题有帮助吗?如果有帮助,请不要忘记accept it。如果没有,请随时告诉我们:)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-23
  • 1970-01-01
相关资源
最近更新 更多