Squirrel / Squirrel.Windows

An installation and update framework for Windows desktop apps
MIT License
7.4k stars 1.03k forks source link

SharpCompress dependency with exact version #1701

Closed adaskos closed 3 years ago

adaskos commented 3 years ago

Squirrel version(s) 2.0.10

Description Is there a specific reason why SharpCompress version is strictly defined? This leads to build errors if the project also has a diamond dependency to SharpCompress from another nuget (e.g. MongDB.Driver.Core)

Steps to recreate

  1. Create a new project
  2. Add squirrel.windows 2.0.10 nuget
  3. Try to add MongoDB.Driver.core nuget

Expected behavior It should have a minimum version defined in the nuspec and let another nuget fetch a later version without an issue

Actual behavior Package Manager will produce an error:

NU1107: Version conflict detected for SharpCompress. Install/reference SharpCompress 0.23.0 directly to project ConsoleApp5 to resolve this issue. 
 ConsoleApp5 -> MongoDB.Driver.Core 2.11.6 -> SharpCompress (>= 0.23.0) 
 ConsoleApp5 -> squirrel.windows 2.0.1 -> SharpCompress (= 0.17.1).
anaisbetts commented 3 years ago

Yes, please search the previous issues. Newer SharpCompress is incompatible with NuGet's zip parser

adaskos commented 3 years ago

I see. That means that as we stand right now Squirrel can't pack such an application.

anaisbetts commented 3 years ago

You can just follow the steps for non-C# apps - ie shell out to update.exe. To be honest I'd actually recommend this approach anyways!

adaskos commented 3 years ago

If I build with newer SharpCompress library updating existing installation work. But new setup (with setup.exe) doesn't. I get

your build did not correctly replace the IDR_UPDATE_ZIP resource

Is this related to the newer SharpCompress library?

Can I install the app some other way? Any link would be helpful.

adaskos commented 3 years ago

I rerun from command prompt and setup was created fine. Probably a transient issue (maybe same as https://github.com/Squirrel/Squirrel.Windows/issues/645). I'll see if it happens again.

anaisbetts commented 3 years ago

@adaskos I promise that this will screw you over if you do this and your users will not be able to update, after you've rolled out your first version to everyone. You will have a Bad Time

adaskos commented 3 years ago

That's definitely not my intention. But I haven't understood what other options I have to releasify. You suggested I update from shell. But packaging is the one who failed me