2015-12-31 3 views
5

среды: VS Enterprise 2015 Update 1, Package Manager Console Принимающей версии 3.3.0.167NuGet не распаковывает сборку из пакета

Шаги для воспроизведения: просто создать новый проект (например, консольное приложение) ориентируется .Net 4.5.2 (но и с другими версиями .net).

Когда я устанавливаю пакет nuget, пакет загружается и, казалось бы, устанавливается без ошибок. Однако nuget не добавляет ссылку на dll. При просмотре в папке пакетов получается, что распакованных .dlls не распаковали, хотя файл .nupkg существует и не поврежден (я могу открыть его с помощью nuget 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 

UPDATE: Случается некоторые, но не все NuGet пакеты

+1

У меня такая же проблема на моем домашнем ПК (но не на моем рабочем ПК), и я еще не смог ее решить. Я попытался переустановить VS, и я попробовал предыдущую версию Nuget Package Manager. – Anthony

+1

Log4Net, похоже, работает для меня, но другие пакеты, такие как RestSharp и Twilio, не извлекают файлы DLL или не добавляют ссылку на проект. – Anthony

ответ

12

обходной путь изложены на этом страница работала - https://connect.microsoft.com/VisualStudio/feedback/details/1656768/installing-certain-nuget-packages-fails-to-actually-extract-the-dll-files-to-the-relevant-lib-folder-and-fails-to-add-an-assembly-reference-to-the-csproj-file

Отправленный Miles Rush на 25.11.2015 в 12:16

Просто исправлено это на моей> системе. Зашел в профиль пользователя кэш-памяти NuGet (C: \ Users \ .nuget \ packages) и удалил все в . Я думаю, что во время процесса восстановления мой кеш был удален из всех DLL-файлов , и когда я пытался установить пакет, он использовал кеш вместо файлов NuGet. Теперь, когда я очистил кеш , теперь я могу установить пакеты NuGet.

+0

Хорошая находка, которая сработала! – jeroenh

+0

Это фиксировало проблему, с которой я несколько часов стучал головой. Я попытался восстановить установку VS, очистив кэш AppData \ Local \ NuGet, удалив всю мою папку TFS и вытащив ее с сервера, восстановив систему, жертвуя древним богам ... это первое, что сработало. Я должен тебе за реал. –

1

Я только что столкнулся с этой проблемой (VS2017 Enterprise), и хотя вышеупомянутый ответ не помог решить проблему, удалив все в папке пакетов для решения.