microsoft / RTVS

R Tools for Visual Studio.
MIT License
389 stars 118 forks source link

Opening project/solution breaks RTVS menus/keyboard shortcuts #4312

Closed hongooi73 closed 6 years ago

hongooi73 commented 6 years ago

After upgrading to VS 15.7.4 (released last week), opening an R project or solution will break all the RTVS menu items. Keyboard shortcuts for switching to R windows (REPL, packages, workspaces, help, etc) will also fail.

Using any of this brings up the following error dialog:

image

MikhailArkhipov commented 6 years ago

Installed internal build of 15.7.4, appears to work OK. Can you check if assembly is present in C:\Program Files (x86)\Microsoft Visual Studio[NAME]\Enterprise\Common7\IDE\Extensions\Microsoft\R Tools for Visual Studio ? RTVS installs .ver 1:1:0:0. Perhaps uninstall/reinstall RTVS?

hongooi73 commented 6 years ago

Found it, but it's a later version (!):

image

MikhailArkhipov commented 6 years ago

This is 1.1. My suspicion is that some old assembly that referenced 1.0 got stuck.

hongooi73 commented 6 years ago

I tried uninstalling and reinstalling just RTVS and it didn't work.

Wiping all my VS installs and reinstalling didn't work either. Now I have to redo my window layouts....

hongooi73 commented 6 years ago

I went back to the stable version of VS (15.6), which didn't have this bug. Today it was updated to 15.7, and the problem is still there. Any chance that this can get fixed soon? It's very annoying.

hongooi73 commented 6 years ago

I downloaded the 1.0.1 version via nuget, compiled it, and added it to the global assembly cache with gacutil. Now I get the following error:

image

AlexanderSher commented 6 years ago

Can you remove 1.0.1 from GAC, enable fusion log and start VS so we can figure out what calls for 1.0.1? https://stackoverflow.com/questions/255669/how-to-enable-assembly-bind-failure-logging-fusion-in-net

hongooi73 commented 6 years ago

Logs sent, along with the dll itself. While I don't know anything about Fusion, I did see the following in /NativeImage/Microsoft.R.Host.Broker.Windows.exe/Microsoft.Extensions.FileSystemGlobbing:

*** Assembly Binder Log Entry  (08-May-18 @ 8:49:15 AM) ***

The operation was successful.
Bind result: hr = 0x1. Incorrect function.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\Common7\IDE\Extensions\Microsoft\R Tools for Visual Studio\Microsoft.R.Host.Broker.Windows.exe
--- A detailed error log follows. 

BEGIN : Native image bind.
END   : Incorrect function. (Exception from HRESULT: 0x00000001 (S_FALSE))

*** Assembly Binder Log Entry  (08-May-18 @ 8:49:15 AM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\Common7\IDE\Extensions\Microsoft\R Tools for Visual Studio\Microsoft.R.Host.Broker.Windows.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = Microsoft.Extensions.FileSystemGlobbing, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/Microsoft Visual Studio/Preview/Enterprise/Common7/IDE/Extensions/Microsoft/R Tools for Visual Studio/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Microsoft.R.Host.Broker.Windows.exe
Calling assembly : Microsoft.Extensions.FileProviders.Physical, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60.
===
WRN: No matching native image found.
LOG: IL assembly loaded from C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\Common7\IDE\Extensions\Microsoft\R Tools for Visual Studio\Microsoft.Extensions.FileSystemGlobbing.dll.

*** Assembly Binder Log Entry  (08-May-18 @ 8:49:15 AM) ***

The operation was successful.
Bind result: hr = 0x0. The operation completed successfully.

Assembly manager loaded from:  C:\Windows\Microsoft.NET\Framework64\v4.0.30319\clr.dll
Running under executable  C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\Common7\IDE\Extensions\Microsoft\R Tools for Visual Studio\Microsoft.R.Host.Broker.Windows.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = Microsoft.Extensions.FileSystemGlobbing, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60
 (Fully-specified)
LOG: Appbase = file:///C:/Program Files (x86)/Microsoft Visual Studio/Preview/Enterprise/Common7/IDE/Extensions/Microsoft/R Tools for Visual Studio/
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = Microsoft.R.Host.Broker.Windows.exe
Calling assembly : Microsoft.Extensions.FileProviders.Physical, Version=1.1.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60.
===
WRN: No matching native image found.
LOG: IL assembly loaded from C:\Program Files (x86)\Microsoft Visual Studio\Preview\Enterprise\Common7\IDE\Extensions\Microsoft\R Tools for Visual Studio\Microsoft.Extensions.FileSystemGlobbing.dll.

So it seems to be looking for version 1.1 and complaining that it's not there. But the dll is definitely version 1.1, and there's no traces of this assembly in GAC.

MikhailArkhipov commented 6 years ago

Just letting all know we found the problem and we will try and get the fix into the nearest VS update.

MikhailArkhipov commented 6 years ago

Closing, expected in 15.7.3 and 15.8.3

MikhailArkhipov commented 6 years ago

15.7.3 is live