NuGet不会从包中解包程序集

NuGet不会从包中解包程序集,nuget,nuget-package-restore,Nuget,Nuget Package Restore,环境:VS Enterprise 2015更新1,Package Manager控制台主机版本3.3.0.167 复制步骤:只需创建一个以.Net 4.5.2为目标的新项目(例如控制台应用程序)(但也尝试了其他.Net版本) 当我安装一个nuget软件包时,该软件包被下载,并且似乎安装得没有错误。但是,nuget不向dll添加引用。在packages文件夹中查看时,发现没有解包的.dll,尽管.nupkg文件在那里并且没有损坏(我可以使用nuget package explorer打开它并查看l

环境:VS Enterprise 2015更新1,Package Manager控制台主机版本3.3.0.167

复制步骤:只需创建一个以.Net 4.5.2为目标的新项目(例如控制台应用程序)(但也尝试了其他.Net版本)

当我安装一个nuget软件包时,该软件包被下载,并且似乎安装得没有错误。但是,nuget不向dll添加引用。在packages文件夹中查看时,发现没有解包的.dll,尽管.nupkg文件在那里并且没有损坏(我可以使用nuget package explorer打开它并查看lib文件夹的内容)

你知道这是什么原因吗

包管理器控制台中的输出:

PM> install-package log4net -verbose
  Attempting to gather dependencies information for package 'log4net.2.0.5' with respect to project 'ConsoleApplication4', targeting '.NETFramework,Version=v4.5.2'
  Attempting to resolve dependencies for package 'log4net.2.0.5' with DependencyBehavior 'Lowest'
  Resolving actions to install package 'log4net.2.0.5'
  Resolved actions to install package 'log4net.2.0.5'
  For adding package 'log4net.2.0.5' to project 'ConsoleApplication4' that targets 'net452'.
  For adding package 'log4net.2.0.5' to project 'ConsoleApplication4' that targets 'net452'.
  Adding package 'log4net.2.0.5' to folder 'c:\Projects\ConsoleApplication4\packages'
  Added package 'log4net.2.0.5' to folder 'c:\Projects\ConsoleApplication4\packages'
  Added package 'log4net.2.0.5' to 'packages.config'
  Added file 'packages.config' to project 'ConsoleApplication4'.
  Successfully installed 'log4net 2.0.5' to ConsoleApplication4
包文件夹的内容:

C:\Projects\ConsoleApplication4\packages\log4net.2.0.5>tree /f .
Folder PATH listing for volume OSDisk
Volume serial number is 8CE4-F2E5
C:\PROJECTS\CONSOLEAPPLICATION4\PACKAGES\LOG4NET.2.0.5
¦   log4net.2.0.5.nupkg
¦
+---lib
    +---net10-full
    ¦       log4net.xml
    ¦
    +---net11-full
    ¦       log4net.xml
    ¦
    +---net20-full
    ¦       log4net.xml
    ¦
    +---net35-client
    ¦       log4net.xml
    ¦
    +---net35-full
    ¦       log4net.xml
    ¦
    +---net40-client
    ¦       log4net.xml
    ¦
    +---net40-full
    ¦       log4net.xml
    ¦
    +---net45-full
            log4net.xml

更新:发生在一些但不是所有的nuget软件包上

本页概述的解决方法似乎有效-

Miles Rush于2015年11月25日下午12:16发布

刚刚在我的>系统上修复了这个问题。进入用户配置文件NuGet缓存 (C:\Users\.nuget\packages),并删除了中的所有内容 那里我想在恢复过程中,我的缓存被清除了 DLL文件,当我试图安装一个软件包时,它正在使用 缓存,而不是NuGet的文件。现在我已经清理了房间 缓存,我现在可以安装NuGet软件包了


我刚刚遇到了这个问题(VS2017 Enterprise),虽然上面的答案没有解决问题,但删除了解决方案包文件夹中的所有内容。

在我们的构建代理上也有类似的行为。原因:已将.nupkg文件添加到存储库中! 在这种情况下,nuget假定包已经存在,并且不会解压缩.nupkg文件


已从存储库中删除文件,生成过程已通过。

我的家用电脑(但不是工作电脑)出现了完全相同的问题,但尚未解决。我尝试过重新安装VS,也尝试过Nuget Package Manager.Log4Net的早期版本,但其他软件包(如RestSharp和Twilio)无法提取DLL文件或添加对项目的引用。这修复了我数小时来一直困扰的问题。我曾经尝试过修复我的VS安装,清除AppData\Local\NuGet缓存,删除我的整个TFS文件夹并再次从服务器中取出它,系统还原,向远古之神献祭……这是第一件有效的事情。我欠你一大笔钱。