luminous-software / start-page-plus-64-bit

64-bit version of the original Start Page+ (for VS 2022+)
MIT License
5 stars 1 forks source link

[BUG] Microsoft.Bcl.AsyncInterfaces missing from latest nightly which causes load failure of Start Page+ #10

Closed MagicAndre1981 closed 1 year ago

MagicAndre1981 commented 1 year ago

Describe the bug

after updating to latest version on VSIX gallery, StartPage+ fails to load

To Reproduce

  1. install 0.19 from release
  2. configure extension source to use VSIX gallary
  3. Search for Updates and install v0.19.2.20
  4. When you restart VS, you get a warning that Start Page+ failed to load.

Expected behavior

VS starts and loads Start Page+

Desktop (please complete the following information):

Additional context

Looking in activitylog.xml shows that Microsoft.Bcl.AsyncInterfaces 7.0.0 can't be found and triggers the issue.

SetSite failed for package [StartPagePlusPackage]Source: 'start-page-plus-64-bit' Description: The type initializer for 'StartPagePlus.DI.MicrosoftDependencyInjectionContainer' threw an exception. System.TypeInitializationException: The type initializer for 'StartPagePlus.DI.MicrosoftDependencyInjectionContainer' threw an exception. ---> System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. Das System kann die angegebene Datei nicht finden. at StartPagePlus.DI.MicrosoftDependencyInjectionContainer..cctor() --- End of inner exception stack trace --- at StartPagePlus.DI.MicrosoftDependencyInjectionContainer.IsRegistered(Type serviceType) in D:\a\start-page-plus-64-bit\start-page-plus-64-bit\src\vsix\DI\MicrosoftDependencyInjectionContainer.cs:line 42 at StartPagePlus.StartPagePlusPackage.GetService(Type serviceType) in D:\a\start-page-plus-64-bit\start-page-plus-64-bit\src\vsix\StartPagePlusPackage.cs:line 65 at Microsoft.VisualStudio.Shell.Package.Dispose(Boolean disposing)System.IO.FileNotFoundException: Could not load file or assembly 'Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' or one of its dependencies. Das System kann die angegebene Datei nicht finden. File name: 'Microsoft.Bcl.AsyncInterfaces, Version=7.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' at StartPagePlus.DI.MicrosoftDependencyInjectionContainer..cctor()

So I opened the 0.19 VSIX here from github and here the DLL is included. So why is the DLL on the Gallery version missing? Maybe adding an reference to the nuget fixes it?

MagicAndre1981 commented 1 year ago

CommunityToolkit.Mvvm 8.1 depends on this Microsoft.Bcl.AsyncInterfaces in Version 7.0.0, this is is the casue of this dependency. When I compile the code I see the dll in output, but it is missing in the VSIX.

A downgrade to 8.0 and the Async version to 6 makes the extension work again.

yannduran commented 1 year ago

The DLL should be INSIDE the vsix file, and it should be installed into the correct place automatically. There should be no extra files, just the vsix.

The versions appearing on the VSIX Gallery are not necessarily valid updates. I fixed a problem with the Github CI/CD file, and these started getting uploaded. Basically it happens every time that I push to my private repo. That wasn't supposed to happen. They're only supposed to be uploaded when the develop branch is pushed. But it's happening for every push, and I didn't realise.

There's no way for me to delete the vsix off the site.

TL/DR - don't install any v0.x.y or v0.x.y.z versions , as only v0.x versions are intended to be consumed by anyone other than me, for testing purposes. All valid preview versions will follow the v0.x pattern. Ignore all others. The problem should go away when I push the next preview, which will be v0.20.

yannduran commented 1 year ago

CommunityToolkit.Mvvm 8.1 depends on this Microsoft.Bcl.AsyncInterfaces in Version 7.0.0, this is is the casue of this dependency. When I compile the code I see the dll in output, but it is missing in the VSIX.

A downgrade to 8.0 and the Async version to 6 makes the extension work again.

This is very helpful Andre! I've been trying all afternoon to figure out why Start Page+ had stopped working. I got the error message about Microsoft.Bcl.AsyncInterfaces, but I couldn't figure out why that was a problem for ME. I didn't even think of Nuget package versions.

Sadly, my concentration etc has been affected by my health issues.

MagicAndre1981 commented 1 year ago

I made a small PR to downgrade the packages and explicitly use .net 6 nugets of some extension dlls, maybe this fixes it. In the vsix the Bcl is still missing. Maybe push a new update after merging this to gallery and let me test if this works.

yannduran commented 1 year ago

Were you using, or were aware of, one of my other extensions for VS 2019 called Extensibility Logs? It suffered the same fate as Start Page+ while I've been MIA, & never got ported to 64-bit.

The VS 2019 version will stay as is, and for 64-bit it's going to be replaced by a new extension called Extensibility+, which initially is just all the log files & tools from Extensibility Logs, but 64-bit. Eventually I'll start adding more extension development-related tools, so all the handy stuff is available in one place. It's a VERY easy way to get one-click access to the activity log, or the VS folder for the current instance of VS etc.

There's no public repo for it yet, but you can get an idea if it'll be of any use to you by looking at this page. Once there's a public repo, you're more than welcome to add issues there too.

HTH

PS - Würden Sie ein Foto von sich haben, dass Sie bereit sind, mit mir zu teilen? Dann kann ich sehen, mit wem ich die ganze Zeit gesprochen habe. Wenn ja, lautet meine E -Mail -Adresse yann@live.com.au. Danke schoen.

yannduran commented 1 year ago

I made a small PR to downgrade the packages and explicitly use .net 6 nugets of some extension dlls, maybe this fixes it. In the vsix the Bcl is still missing. Maybe push a new update after merging this to gallery and let me test if this works.

Sure, I can do that. It'll be a big help for me too, so thanks.

MagicAndre1981 commented 1 year ago

I already have your 64bit version of this extension installed. In VS2019 I was not able to run both extensions at same time, but now it works.

yannduran commented 1 year ago

Oh yeah, I remember now.