NuGet still hangs

Topics: General
Oct 9, 2012 at 12:59 PM

Dear, NuGet team, please do something that NuGet doesnt' hangs. It's just terrible. I have a project with some my package installed in. NuGet hangs on uninstalling this package. The only way is to kill VS from ProcessExplorer. Probably it's the same bug - http://nuget.codeplex.com/workitem/2532 as I created before. It didn't find its way to 2.1 and still with LOW impact. That's killing me!

Today I've installed NuGet 2.1. I had a hope it fixes somewhat for me. Nope. The same bug here. Please pay more attention on user experience. NuGet should NOT hangs. Ever. NuGet should be able to create details logs which would help to diagnose an issue (I ofter get an error like "NuGet failed to add reference to <assembly>").

There's no matter in new features if the software simply hangs, right?

Oct 9, 2012 at 6:15 PM

Can you provide more details on the projects and packages that you were installing? If you run VisualStudio with the /log switch, it will produce an log file on disk. Can you try that and let us know?

Oct 12, 2012 at 2:20 PM

I understand that it'd be great to have reproducible sample/environment. But I can't share my machine's VM with TFS/Nuget-packages. Here's some details that I hope will help a bit:

Env: VS2012, nuget 2.1 (latest release), solution with single C#/ASP.NET MVC project. Solution has packages installed from custom repository. Package restore is enabled for the solution. The solution is under source control (TFS2010).

Sln and csproj files are in the same folder. So do packages folder and packages.config file.

Here's packages.config:

<?xml version="1.0" encoding="utf-8"?>
<packages>
  <package id="Microsoft.AspNet.Mvc" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.Razor" version="2.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.Client" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.Core" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebApi.WebHost" version="4.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.AspNet.WebPages" version="2.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.Net.Http" version="2.0.20710.0" targetFramework="net40" />
  <package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net40" />
  <package id="Newtonsoft.Json" version="4.5.8" targetFramework="net40" />
  <package id="NGenerics" version="1.4.1.0" targetFramework="net40" />
  <package id="Ninject" version="3.0.1.10" targetFramework="net40" />
  <package id="PowerThreading" version="20120420.0" targetFramework="net40" />
  <package id="XFW3.Core" version="1.7.0" targetFramework="net40" />
  <package id="XFW3.DslDesigner" version="1.7.0" targetFramework="net40" />
  <package id="XFW3.Server" version="1.7.0" targetFramework="net40" />
  <package id="XFW3.Storage.MsSql" version="1.7.0" targetFramework="net40" />
  <package id="XFW3.WebClient" version="0.6.0" targetFramework="net40" />
</packages>

All that packages are in my custom repository (local folder actually).

Then in VS's Package Manager Console I issue:

Update-Package XFW3.WebClient -IncludePrerelease -Reinstall

After than I can see some work (there's much blinking in Source Control Explorer) but after several minutes VS hangs. Absolutely.

If I open another VS instance I can see several pending changes with deletion of files.

The package I'm reinstalling contains many files in content & tools folder. Below you can find dump of the package folder's structure.

Running devend with /log option doesn't help at all. There's no any info in the log relating to NuGet.

 

My package folder's structure:

Folder PATH listing for volume Work
Volume serial number is 7218-13E2
D:.
│   App.config.pp
│   XFW3.WebClient.0.6.0.nupkg
│   XFW3.WebClient.0.6.0.nuspec
│  
├───content
│   │   App.config.xml.pp
│   │   readme.txt
│   │   Web.config.transform
│   │  
│   ├───App_Start
│   │       BootstrapperConfig.cs.pp
│   │      
│   ├───client
│   │   │   main.config.json
│   │   │   main.js.pp
│   │   │   report-main.js
│   │   │  
│   │   ├───app
│   │   │       default-menus.js
│   │   │       default-parts.js
│   │   │       model-ext.js
│   │   │      
│   │   ├───lib
│   │   │   │   binding.js
│   │   │   │   core.commands.js
│   │   │   │   core.composition.js
│   │   │   │   core.diagnostics.js
│   │   │   │   core.events.js
│   │   │   │   core.js
│   │   │   │   core.lang.js
│   │   │   │   domain.js
│   │   │   │   Filter.js
│   │   │   │   formatters.js
│   │   │   │   utils.js
│   │   │   │   validation.js
│   │   │   │   xcss.js
│   │   │   │  
│   │   │   ├───data
│   │   │   │       DataSource.js
│   │   │   │      
│   │   │   ├───domain
│   │   │   │       DomainObject.js
│   │   │   │       DomainObjectMap.js
│   │   │   │       DomainObjectRegistry.js
│   │   │   │       NavigationPropBase.js
│   │   │   │       NavigationPropSet.js
│   │   │   │       NotLoadedNavigationProp.js
│   │   │   │       NotLoadedObject.js
│   │   │   │       support.js
│   │   │   │       UnitOfWork.js
│   │   │   │      
│   │   │   ├───interop
│   │   │   │       backendInterop.js
│   │   │   │       dataFacade.js
│   │   │   │       localStorage.js
│   │   │   │      
│   │   │   ├───ui
│   │   │   │   │   AreaStatesMenu.js
│   │   │   │   │   AuthMenu.js
│   │   │   │   │   Component.js
│   │   │   │   │   ConfirmDialog.js
│   │   │   │   │   Dialog.js
│   │   │   │   │   dropdownExtension.js
│   │   │   │   │   DropDownMenuPresenter.js
│   │   │   │   │   EditorPage.js
│   │   │   │   │   EditorPageController.js
│   │   │   │   │   EditorPagePresenter.js
│   │   │   │   │   ExpandablePanel.js
│   │   │   │   │   LoginDialog.js
│   │   │   │   │   Menu.js
│   │   │   │   │   MenuButtonsPresenter.js
│   │   │   │   │   MenuPresenter.js
│   │   │   │   │   NavigationPropertyEditor.js
│   │   │   │   │   NavListMenuPresenter.js
│   │   │   │   │   NavMenu.js
│   │   │   │   │   ObjectDetails.js
│   │   │   │   │   ObjectEditor.js
│   │   │   │   │   ObjectEditorPresenter.js
│   │   │   │   │   ObjectFilter.js
│   │   │   │   │   ObjectList.js
│   │   │   │   │   ObjectListPresenterBase.js
│   │   │   │   │   ObjectSelector.js
│   │   │   │   │   Part.js
│   │   │   │   │   peBoolean.js
│   │   │   │   │   peDateTime.js
│   │   │   │   │   peEnumBase.js
│   │   │   │   │   peEnumCheckbox.js
│   │   │   │   │   peEnumDropDownChosen.js
│   │   │   │   │   peEnumRadio.js
│   │   │   │   │   peNumber.js
│   │   │   │   │   peObject.js
│   │   │   │   │   peObjectDropDownLookup.js
│   │   │   │   │   peObjectList.js
│   │   │   │   │   peReadOnly.js
│   │   │   │   │   peString.js
│   │   │   │   │   PropertyEditor.js
│   │   │   │   │   ReportExportMenu.js
│   │   │   │   │   ReportPagePart.js
│   │   │   │   │   ReportPagePartPresenter.js
│   │   │   │   │   ReportPart.js
│   │   │   │   │   ReportPartBase.js
│   │   │   │   │   ReportPartPresenter.js
│   │   │   │   │   SimpleObjectListPresenter.js
│   │   │   │   │   StackPanel.js
│   │   │   │   │   StatefulPart.js
│   │   │   │   │  
│   │   │   │   ├───handlebars
│   │   │   │   │       View.js
│   │   │   │   │      
│   │   │   │   ├───slick
│   │   │   │   │   │   slick.bootstrap.js
│   │   │   │   │   │   SlickObjectListDataPresenter.js
│   │   │   │   │   │   SlickObjectListPresenter.js
│   │   │   │   │   │  
│   │   │   │   │   └───templates
│   │   │   │   │           SlickObjectListDataPresenter.html
│   │   │   │   │          
│   │   │   │   └───templates
│   │   │   │           authDialog.html
│   │   │   │           dialog.html
│   │   │   │           EditorPagePresenter.html
│   │   │   │           ExpandablePanel.html
│   │   │   │           ObjectListPresenter.html
│   │   │   │           ReportPagePartPresenter.html
│   │   │   │           ReportPartPresenter.html
│   │   │   │           wizard.html
│   │   │   │          
│   │   │   └───utils
│   │   │           datetimes.js
│   │   │           OrderedCollection.js
│   │   │          
│   │   └───vendor
│   │       │   amplify.js
│   │       │   chosen.jquery.js
│   │       │   console.js
│   │       │   d3.v2.js
│   │       │   es5-shim.js
│   │       │   handlebars.js
│   │       │   history.js
│   │       │   html5.js
│   │       │   jquery.fileDownload.js
│   │       │   jquery.numeric.js
│   │       │   jquery.scrollTo-min.js
│   │       │   linq.js
│   │       │   modernizr-2.0.6.min.js
│   │       │   moment.js
│   │       │   order.js
│   │       │   require-jquery.js
│   │       │   rx.jquery.min.js
│   │       │   rx.min.js
│   │       │   rx.time.min.js
│   │       │   showdown.js
│   │       │   text.js
│   │       │   underscore.js
│   │       │  
│   │       ├───bootstrap
│   │       │       bootstrap.js
│   │       │      
│   │       ├───jquery-ui
│   │       │       jquery-ui-core.min.js
│   │       │       jquery-ui-effects.js
│   │       │       jquery-ui-timepicker-addon.js
│   │       │       jquery-ui-timepicker-ru.js
│   │       │       jquery.event.drag-2.0.min.js
│   │       │       jquery.notify.js
│   │       │       jquery.ui.datepicker-ru.js
│   │       │       jquery.ui.datepicker.min.js
│   │       │       jquery.ui.mouse.min.js
│   │       │       jquery.ui.slider.min.js
│   │       │       jquery.ui.sortable.min.js
│   │       │      
│   │       └───slick
│   │           │   slick.core.js
│   │           │   slick.grid.js
│   │           │  
│   │           └───plugins
│   │                   slick.autotooltips.js
│   │                   slick.cellcopymanager.js
│   │                   slick.cellrangedecorator.js
│   │                   slick.cellrangeselector.js
│   │                   slick.cellselectionmodel.js
│   │                   slick.checkboxselectcolumn.js
│   │                   slick.rowmovemanager.js
│   │                   slick.rowselectionmodel.js
│   │                  
│   ├───content
│   │   │   generic.css
│   │   │  
│   │   ├───app
│   │   │       site.app.css
│   │   │      
│   │   ├───h5bp
│   │   │   └───css
│   │   │           style.css
│   │   │          
│   │   ├───lib
│   │   │   │   common.css
│   │   │   │   menuButtons.css
│   │   │   │   objectEditor.css
│   │   │   │   peBoolean.css
│   │   │   │   peDateTime.css
│   │   │   │   peEnum.css
│   │   │   │   peObject.css
│   │   │   │   peObjectDropDownLookup.css
│   │   │   │   peReadOnly.css
│   │   │   │   peString.css
│   │   │   │   reportPart.css
│   │   │   │   reportStyles.css
│   │   │   │   slickObjectListPresenter.css
│   │   │   │  
│   │   │   └───images
│   │   │           waiting.gif
│   │   │           waiting_16.gif
│   │   │          
│   │   └───vendor
│   │       ├───bootstrap
│   │       │   ├───css
│   │       │   │       bootstrap.css
│   │       │   │      
│   │       │   └───img
│   │       │           glyphicons-halflings-white.png
│   │       │           glyphicons-halflings.png
│   │       │          
│   │       ├───chosen
│   │       │       chosen-sprite.png
│   │       │       chosen.css
│   │       │       chosen.original.css
│   │       │      
│   │       ├───jquery-ui
│   │       │   │   jquery-ui-timepicker-addon.css
│   │       │   │   ui.notify.css
│   │       │   │  
│   │       │   └───bootstrap
│   │       │       │   jquery-ui-1.8.16.custom.css
│   │       │       │   jquery.ui.1.8.16.ie.css
│   │       │       │  
│   │       │       └───images
│   │       │               ui-bg_flat_0_aaaaaa_40x100.png
│   │       │               ui-bg_glass_55_fbf9ee_1x400.png
│   │       │               ui-bg_glass_65_ffffff_1x400.png
│   │       │               ui-bg_glass_75_dadada_1x400.png
│   │       │               ui-bg_glass_75_e6e6e6_1x400.png
│   │       │               ui-bg_glass_75_ffffff_1x400.png
│   │       │               ui-bg_highlight-soft_75_cccccc_1x100.png
│   │       │               ui-bg_inset-soft_95_fef1ec_1x100.png
│   │       │               ui-icons_222222_256x240.png
│   │       │               ui-icons_2e83ff_256x240.png
│   │       │               ui-icons_454545_256x240.png
│   │       │               ui-icons_888888_256x240.png
│   │       │               ui-icons_cd0a0a_256x240.png
│   │       │               ui-icons_f6cf3b_256x240.png
│   │       │              
│   │       └───slick
│   │           │   slick.grid.css
│   │           │  
│   │           └───images
│   │                   actions.gif
│   │                   ajax-loader-small.gif
│   │                   arrow_redo.png
│   │                   arrow_right_peppermint.png
│   │                   arrow_right_spearmint.png
│   │                   arrow_undo.png
│   │                   bullet_blue.png
│   │                   bullet_star.png
│   │                   bullet_toggle_minus.png
│   │                   bullet_toggle_plus.png
│   │                   calendar.gif
│   │                   collapse.gif
│   │                   comment_yellow.gif
│   │                   down.gif
│   │                   drag-handle.png
│   │                   editor-helper-bg.gif
│   │                   expand.gif
│   │                   header-bg.gif
│   │                   header-columns-bg.gif
│   │                   header-columns-over-bg.gif
│   │                   help.png
│   │                   info.gif
│   │                   listview.gif
│   │                   pencil.gif
│   │                   row-over-bg.gif
│   │                   sort-asc.gif
│   │                   sort-asc.png
│   │                   sort-desc.gif
│   │                   sort-desc.png
│   │                   stripes.png
│   │                   tag_red.png
│   │                   tick.png
│   │                   user_identity.gif
│   │                   user_identity_plus.gif
│   │                  
│   ├───Controllers
│   │       SecurityController.cs.pp
│   │      
│   ├───Metadata
│   │       data-sources.xml
│   │      
│   └───Views
│       │   Web.config
│       │   _ViewStart.cshtml
│       │  
│       └───Shared
│               Error.cshtml
│               Index.cshtml
│               Report.cshtml
│               _ImportCssLinks.cshtml
│               _ImportJavascriptInline.cshtml
│               _ImportJavascriptLinks.cshtml
│               _Layout.cshtml
│               _Layout.cshtml.pp
│              
├───lib
│       Croc.XFW3.WebServer.dll
│       Croc.XFW3.WebServer.pdb
│      
└───tools
    │   install.ps1
    │  
    ├───build
    │       base-layer
    │       build.config.json
    │       build.js
    │       file.js
    │       gen-layers.ps1
    │       lang.js
    │       make.bat
    │       make.ps1
    │       r.js
    │       vendor-layer-order
    │      
    └───node
            node.exe
           

Oct 31, 2012 at 5:02 AM
Edited Oct 31, 2012 at 5:37 AM

Hi All, I am having the same issue I think.  my setup is:

  • Win7 (x64)
  • Visual Studio 2012 Ultimate
  • NuGet VS addin 2.1.3### (latest)
  • TFS 2010

What I have found recenlty (maybe even since VS2012 install) is that any NuGet packages that try to update "content" (E.g. trying to remove/add a .js file in a scripts directory) just hang when uninstalling.  If a package just needs to force a project to reference a DLL it seems to work fine (E.g. updating Newtonsoft.JSON works, but anything that has content does not).

It would seem maybe VS2012 is trying to remove a file, but TFS is not allowing it, but it just hangs forever (I left it for over 4 hours one time to see if it would eventually get there).

I have a workaround, painful but it works.  This does prove that it's some sort of TFS issue also because by avoiding TFS everything works:

  1. Select the Solution in Solution Explorer
  2. Go to File > Source Control > Advanced > Change Source Control ...
  3. "Unbind" the solution and all projects
  4. Go to the root directory in windows explorer, and make sure the "read-only" attribute is not set on any files - doing this at the root usually allows it to recursively unset the read-only attribute o everything.  At this point you are disconnected from TFS and all files and folders are writable
  5. Now do you NuGet stuff!  Uninstall, install, upgrade, whatever you like.  This is a lot faster also with TFS keeping its nose out of things :)
  6. Once finished, go back to  File > Source Control > Advanced > Change Source Control ...
  7. Now re-bind everything.  It should figure out what has changed and what has not, you can then check in!

Cheers.

Nov 15, 2012 at 7:59 AM

Hi,

I confirm this issue with VS2012 on Windows 8. Without TFS it works fine. It is interesting that update works from Package Manager Console in VS2010 on Windows 8, but fails in VS2012 on the same system. All nugets without content I can update in VS2012, to update nugets with content I have to switch to VS2010 and do it from the console, not GUI.

Cheers

Dec 19, 2012 at 7:19 AM

The issue is still actual on NuGet 2.3.

Feb 11, 2013 at 9:19 PM
Thanks for reporting. I'm actively working on fixing this.
Feb 15, 2013 at 12:41 PM
Unfortunately, I still can't repro this bug. I tried created a package with content file, and tried updating it to a newer version which also contains a file with the same name as the old version. The project is bound to TFS, and I can update the package successfully, both from the console and the dialog.
Nov 4, 2013 at 7:51 PM
Way to reproduce one of the many bugs in Nuget.
  1. Download the sample from http://www.asp.net/web-api/overview/extensibility/using-the-web-api-dependency-resolver
  2. Righ click on references and select manage "Nuget Packages"
  3. Search for Unity, select and press install.
  4. It will hang.
It is indeed sad that Microsoft now allows bugs to creep into its development tools. I am using VS2013 RTM.
Dec 16, 2013 at 7:41 PM
https://github.com/osbornm/Playr/issues/2

I still have the same issue with vs 2013