2017-07-13 5 views
4

Ich stürze Visual Studio jedes Mal ab, wenn ich eine Nuget-Referenz hinzufüge. Es fühlt sich an wie ein BUG.Verwalten von Nuget-Paketen stürzt ab VS2017

Es wurde der Entwickler-Community gemeldet (beta) Ort: https://developercommunity.visualstudio.com/content/problem/6782/manage-nuget-packages-crashes-vs2017rc.html

Darin heißt es es fixiert war, so dass die genaue Ursache für diese müssen unterschiedlich sein:

enter image description here

Das Problem sieht wie es im Jahr 2015 gab es aber keine Antworten:

Es ist so nervig Ich muss die Konsole verwenden, um Pakete zu installieren oder bearbeiten Sie die packages.config-Datei manuell und dann Stellen Sie die Pakete wieder her. Nicht glücklich - hat jemand eine Lösung?

Specs
Win7 x64
Microsoft Visual Studio Enterprise 2017
Version 15.2 (26.430,6) Release
VisualStudio.15.Release/15.2.0 + 26.430,6
Microsoft .NET Framework v 4.7.02053

installierte Version: Unternehmen

.....

NuGet Package Manager 4.2.0


Event Log:

Application: devenv.exe 
Framework Version: v4.0.30319 
Description: The process was terminated due to an unhandled exception. 
Exception Info: System.UnauthorizedAccessException 
    at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32 errorCode, IntPtr errorInfo) 
    at Microsoft.VisualStudio.Shell.Settings.ShellWritableSettingsStore.CreateCollection(String collectionPath) 
    at Microsoft.VisualStudio.PlatformUI.CategoryMRUItems.SaveItems(WritableSettingsStore store) 
    at Microsoft.VisualStudio.PlatformUI.MRUItemsStoreService.AddMRUItem(Guid& guidCategory, String lpszItem) 
    at Microsoft.VisualStudio.PlatformUI.MruItemsStoreServiceDecorator.AddMRUItem(Guid& guidCategory, String lpszItem) 
    at Microsoft.VisualStudio.Platform.WindowManagement.WindowSearchHost.Microsoft.VisualStudio.Platform.WindowManagement.IWindowSearchEventsHandler.OnAddMRUItem(String searchedText) 
    at Microsoft.VisualStudio.Platform.WindowManagement.WindowSearchDataSource.OnAddMRUItem(String searchedText) 
    at Microsoft.VisualStudio.PlatformUI.SearchControlDataSource.AddMRUItemAction(GelDependencyObject datasource, Object parameter) 
    at Microsoft.Internal.VisualStudio.PlatformUI.GelDependencyObject.Invoke(GelVerb descriptor, Object param) 
    at Microsoft.Internal.VisualStudio.PlatformUI.GelDependencyObject.Invoke(String verb, Object param) 
    at Microsoft.Internal.VisualStudio.PlatformUI.GelDependencyObject.Invoke(String verb, Object pvaIn, Object& pvaOut) 
    at System.Runtime.InteropServices.Marshal.ThrowExceptionForHRInternal(Int32, IntPtr) 
    at Microsoft.Internal.VisualStudio.PlatformUI.Utilities.Invoke(Microsoft.VisualStudio.Shell.Interop.IVsUIDataSource, System.String, System.Object) 
    at Microsoft.VisualStudio.PlatformUI.SearchControl.AddToMRUItems(System.String) 
    at Microsoft.VisualStudio.PlatformUI.SearchControl.SearchBox_LostKeyboardFocus(System.Object, System.Windows.Input.KeyboardFocusChangedEventArgs) 
    at System.Windows.Input.KeyboardFocusChangedEventArgs.InvokeEventHandler(System.Delegate, System.Object) 
    at System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object) 
    at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) 
    at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) 
    at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) 
    at System.Windows.UIElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs) 
    at System.Windows.UIElement.RaiseEvent(System.Windows.RoutedEventArgs, Boolean) 
    at System.Windows.Input.InputManager.ProcessStagingArea() 
    at System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs) 
    at System.Windows.Input.KeyboardDevice.ChangeFocus(System.Windows.DependencyObject, Int32) 
    at System.Windows.Input.KeyboardDevice.TryChangeFocus(System.Windows.DependencyObject, System.Windows.Input.IKeyboardInputProvider, Boolean, Boolean, Boolean) 
    at System.Windows.Input.KeyboardDevice.Focus(System.Windows.DependencyObject, Boolean, Boolean, Boolean) 
    at System.Windows.Input.KeyboardDevice.Focus(System.Windows.IInputElement) 
    at System.Windows.UIElement.Focus() 
    at System.Windows.Controls.ListBoxItem.HandleMouseButtonDown(System.Windows.Input.MouseButton) 
    at System.Windows.Controls.ListBoxItem.OnMouseLeftButtonDown(System.Windows.Input.MouseButtonEventArgs) 
    at System.Windows.UIElement.OnMouseLeftButtonDownThunk(System.Object, System.Windows.Input.MouseButtonEventArgs) 
    at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object) 
    at System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object) 
    at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) 
    at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) 
    at System.Windows.UIElement.ReRaiseEventAs(System.Windows.DependencyObject, System.Windows.RoutedEventArgs, System.Windows.RoutedEvent) 
    at System.Windows.UIElement.OnMouseDownThunk(System.Object, System.Windows.Input.MouseButtonEventArgs) 
    at System.Windows.Input.MouseButtonEventArgs.InvokeEventHandler(System.Delegate, System.Object) 
    at System.Windows.RoutedEventArgs.InvokeHandler(System.Delegate, System.Object) 
    at System.Windows.RoutedEventHandlerInfo.InvokeHandler(System.Object, System.Windows.RoutedEventArgs) 
    at System.Windows.EventRoute.InvokeHandlersImpl(System.Object, System.Windows.RoutedEventArgs, Boolean) 
    at System.Windows.UIElement.RaiseEventImpl(System.Windows.DependencyObject, System.Windows.RoutedEventArgs) 
    at System.Windows.ContentElement.RaiseTrustedEvent(System.Windows.RoutedEventArgs) 
    at System.Windows.Input.InputManager.ProcessStagingArea() 
    at System.Windows.Input.InputManager.ProcessInput(System.Windows.Input.InputEventArgs) 
    at System.Windows.Input.InputProviderSite.ReportInput(System.Windows.Input.InputReport) 
    at System.Windows.Interop.HwndMouseInputProvider.ReportInput(IntPtr, System.Windows.Input.InputMode, Int32, System.Windows.Input.RawMouseActions, Int32, Int32, Int32) 
    at System.Windows.Interop.HwndMouseInputProvider.FilterMessage(IntPtr, MS.Internal.Interop.WindowMessage, IntPtr, IntPtr, Boolean ByRef) 
    at System.Windows.Interop.HwndSource.InputFilterMessage(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 
    at MS.Win32.HwndWrapper.WndProc(IntPtr, Int32, IntPtr, IntPtr, Boolean ByRef) 
    at MS.Win32.HwndSubclass.DispatcherCallbackOperation(System.Object) 
    at System.Windows.Threading.ExceptionWrapper.InternalRealCall(System.Delegate, System.Object, Int32) 
    at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(System.Object, System.Delegate, System.Object, Int32, System.Delegate) 
    at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(System.Windows.Threading.DispatcherPriority, System.TimeSpan, System.Delegate, System.Object, Int32) 
    at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr, Int32, IntPtr, IntPtr) 

Faulting application name: devenv.exe, version: 15.0.26430.6, time stamp: 0x5914d7fe 
Faulting module name: KERNELBASE.dll, version: 6.1.7601.23807, time stamp: 0x5915f98e 
Exception code: 0xe0434352 
Fault offset: 0x0000c54f 
Faulting process id: 0xf48 
Faulting application start time: 0x01d2fb77b5f33dcc 
Faulting application path: C:\Program Files x86\Microsoft Visual Studio\2017\Enterprise\Common7\IDE\devenv.exe 
Faulting module path: C:\WINDOWS\syswow64\KERNELBASE.dll 
Report Id: f949036c-676b-11e7-8422-3417ebddc764 

Error Handler Exception: System.ServiceModel.CommunicationException: There was an error reading from the pipe: Unrecognized error 109 (0x6d). ---> System.IO.IOException: The read operation failed, see inner exception. ---> System.ServiceModel.CommunicationException: There was an error reading from the pipe: Unrecognized error 109 (0x6d). ---> System.IO.PipeException: There was an error reading from the pipe: Unrecognized error 109 (0x6d). 
    at System.ServiceModel.Channels.PipeConnection.OnAsyncReadComplete(Boolean haveResult, Int32 error, Int32 numBytes) 
    --- End of inner exception stack trace --- 
    at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at System.ServiceModel.Channels.ConnectionStream.EndRead(IAsyncResult asyncResult) 
    at System.Net.FixedSizeReader.ReadCallback(IAsyncResult transportResult) 
    --- End of inner exception stack trace --- 
    at System.Net.Security.NegotiateStream.EndRead(IAsyncResult asyncResult) 
    at System.ServiceModel.Channels.StreamConnection.EndRead() 
    --- End of inner exception stack trace --- 
    at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at System.ServiceModel.Channels.TransportDuplexSessionChannel.EndTryReceive(IAsyncResult result, Message& message) 
    at System.ServiceModel.Dispatcher.DuplexChannelBinder.EndTryReceive(IAsyncResult result, RequestContext& requestContext) 
    at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext) \r\n at System.Runtime.AsyncResult.End[TAsyncResult](IAsyncResult result) 
    at System.ServiceModel.Channels.TransportDuplexSessionChannel.EndTryReceive(IAsyncResult result, Message& message) 
    at System.ServiceModel.Dispatcher.DuplexChannelBinder.EndTryReceive(IAsyncResult result, RequestContext& requestContext) 
    at System.ServiceModel.Dispatcher.ErrorHandlingReceiver.EndTryReceive(IAsyncResult result, RequestContext& requestContext) 

Antwort

4

verwendete ich SysInternals Process Monitor, um herauszufinden, dass die tatsächlichen ACCESS_DENIED passiert, wenn VS auf RegCreateKey versucht für einen Schlüssel:

\REGISTRY\A\{4B5F9AD2-BB8B-4CF8-9ACB-201C56F4D086}\Software\Microsoft\VisualStudio\15.0_05fc10d7\MRUItems\{00000000-0000-0000-0000-000000000000}\Items 

Dieser Schlüssel in VS Anwendung Strukturdatei gespeichert werden angezeigt:

C:\Users\<user name>\AppData\Local\Microsoft\VisualStudio\15.0_05fc10d7\privateregistry.user.bin 

Ich begann regedit als Admin, geladene Hive-Datei in Regedit als described:

  1. Starten RegEdit.exe
  2. Wählen Sie den Computer \ HKEY_LOCAL_MACHINE Knoten im linken Bereich
  3. Wählen Sie Datei | Load Hive ..., und lade den privateregistry.user.
  4. bin
  5. Wenn für einen Schlüsselnamen gefragt, geben Sie einfach in so etwas wie „VSRegHive“
  6. Dadurch werden die Daten in einen VSRegHive unter dem HKLM Knoten
  7. erstellen die 2 fehlenden Tasten {00000000-0000-0000-0000-000000000000}\Items laden:

enter image description here

  1. Wenn die VSRegHive fertig wählen und Datei | Entladen Sie Hive ..., bevor Sie das Dienstprogramm RegEdit.exe beenden, andernfalls wird VS nicht gestartet. Wenn der Hive in regedit geladen wird, entsteht eine Art Art von Sperre, die verhindert, dass DevEnv.exe gestartet wird.

Mit den 2 fehlenden Schlüsseln an Ort und Stelle stürzt VS2017 im NuGet Manager nicht ab.

+0

** ROCKSTAR! ** Es scheint zu funktionieren, * Ich konnte VS mit NuGet * nicht abstürzen. Du hast mir etwas beigebracht, was ich nicht wusste, wie man einen Hive lädt, und das wird mir bei anderen Problemen helfen. Glücklicherweise befindet sich der Schlüssel in der Datei privateregistry.user.bin, da ich manchmal die Datei privateregistry.bin löschen muss. Gut gemacht - hier habe ich eine Woche lang 50pt Kopfgeld auf mich. Danke für den Wissensaustausch. –

2

Mein VS2017 stürzt auch in Manager NuGet Paket so bin ich m Das Hinzufügen von Paketen zum Projekt ist nicht möglich. Versuchen Sie VS2017 als Administrator zu starten, meins erlaubt mir, Pakete auf diese Weise hinzuzufügen, dann starte ich VS2017 als normaler Benutzer neu.

+0

Es ist eine 'UnauthorizedAccessException', also läuft es ohne Zweifel als Administrator. Ich bin scharf auf eine Lösung mit MRU (zuletzt verwendeten) Elemente nach Call-Stack. –