Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multi-Framework Support #188

Closed
dealproc opened this issue Jan 15, 2015 · 22 comments
Closed

Multi-Framework Support #188

dealproc opened this issue Jan 15, 2015 · 22 comments

Comments

@dealproc
Copy link

With NetFX 4.5.1 and 4.5.2 [i believe] available for development and consumption, what is the roadmap to supporting this in squirrel?

Is there anything that a user contrib may be able to help with?

@ErikEJ
Copy link

ErikEJ commented Jan 15, 2015

What is not working with 4.5.1 and 4.5.2 ?

@anaisbetts
Copy link
Contributor

Hm, this kind of works right now (if you don't have .NET Framework installed, we'll give you 4.5.2), but if you have 4.5.0 installed, we'll happily accept it and your app will crash. Right now, the best recommendation I have is, to fork Squirrel and rig https://github.com/Squirrel/Squirrel.Windows/blob/master/src/Setup/FxHelper.cpp#L7 to be a higher number, but that sucks.

The tricky part is, that Setup.exe basically has zero available information that it can query to figure out what version of .NET that it needs, and on the build side, it's annoyingly difficult to determine from the build products which version of .NET is needed.

@dealproc
Copy link
Author

This may be a bit far-fetched....
but, is there any way to use something similar to:
[assembly: AssemblyMetadata("SquirrelAwareVersion", "1")]
that would allow us the ability to set which version we need, or is the reference that we don't know it from the .net fx side?

@kevfromireland
Copy link
Contributor

Have you considered having a config file, opt-in, that allows you to configure some of the behavior of setup.exe or update.exe during initial install?

This could be a really trivial, totally opt-in, thing that allows you to configure title bars for the Win32 component, configure animated gif delay or what version of .NET you need to install.

The config file could either be embedded in the setup.exe, or just added to the zip as with the rest of the files.

@anaisbetts
Copy link
Contributor

So for the .NET scenario, this is actually doable fairly easily:

  1. Put the minimum .NET version in as a resource with a known name
  2. Releasify reads the .NET assemblies for some extra metadata for the required .NET version, Reduces to the highest value
  3. Releasify uses rcedit to set the known resource

This could be a really trivial, totally opt-in, thing that allows you to configure title bars for the Win32 component, configure animated gif delay or what version of .NET you need to install.

I'm not super interested in configuring stuff like that, the .NET version is important though.

Is someone actually blocked on shipping their app because of this bug? Or is this a theoretical, "What if I want to .NET 4.5.1" thing?

@kevfromireland
Copy link
Contributor

For me, it is purely theoretical although as mentioned in #77 , I would like to be able to switch that hardcoded 4s to 0s :)

Hopefully @dealproc can comment on whether or not the 4.5.2 thing is a real issue for them.

@dealproc
Copy link
Author

As of right now (today) I'm standardized on v4.5 so it is theoretical. Since this is an OSS project, I figure there are no mandates, but thought I could provide a solution to solve the issue at hand.

If we can get v4.5.2 support, great. If not, no worries for now... but if it bites, not sure what the next steps would be.

What does v4.5.2 provide that v4.5.0 does not have?

@anaisbetts
Copy link
Contributor

What does v4.5.2 provide that v4.5.0 does not have?

Mostly High-DPI support for Winforms apps; most other improvements are runtime improvements (i.e. no new APIs, your apps get it "for free")

@jordyvaneijk
Copy link

Since this weekend DeltaCompressionDotNet 1.1.0 is released, this will give Squirrel.Windows the possibility to also be used with .net 2.0 applications or higher. Because you now need to have .net 4.5 application in order to use it.

@dealproc
Copy link
Author

Ah, a year later, and am curious about if anyone has explored the concept of ensuring .net 4.6.1 is installed on the host machine?

Thanks.

@anaisbetts
Copy link
Contributor

Not at the moment

@dealproc
Copy link
Author

I'm lying in bed and thinking this through... I'm wondering if maybe since there is an msi created, if we shouldn't author a bootstrapper using WiX to do the initial install of the application, which could then do all the dependency checking and various installations of the prerequisites, followed by the installation of the SquirrelAwareApp, which would then allow for the usage of squirrel without the need for a bunch of changes to the core logic of Squirrel.Windows?

@CallumWatkins
Copy link

I am definitely looking for Squirrel to support ensuring a specific version of .NET to be installed on the client's machine. This is a rather critical feature which I would be looking to be resolved before I can switch from ClickOnce to Squirrel. If Squirrel is meant to be better than ClickOnce for user experience... I kind of feel this is an important feature.

If I have misunderstood this, and it is possible to specify that the user has, for example, .NET 4.6.1 installed and install it if it isn't already, please let me know. Thanks.

@anaisbetts
Copy link
Contributor

@CallumWatkins Cool! You can implement it then :)

@CallumWatkins
Copy link

@paulcbetts So it isn't possible yet, well that is a shame. If I knew how to I would! Is this something that is actually going to be implemented or pushed aside?

@anaisbetts
Copy link
Contributor

I don't have a need for this feature so I'm not going to implement it, if someone else wants to I'll certainly review their PR

@CallumWatkins
Copy link

@paulcbetts Fair play!

@HalidCisse
Copy link

2 years later, any progress here ?

@anaisbetts
Copy link
Contributor

anaisbetts commented Jan 25, 2017

@HalidCisse Rude. To be perfectly honest, I just don't care about this issue. If someone on this thread does (and it sounds like they do!), I would be glad to suggest ideas on how to solve this and let someone write a PR for it. That's how Open Source works, I'm not a vendor you can demand things of.

@HalidCisse
Copy link

@paulcbetts sorry if it sound rude, you suggestions are welcome, i will gladly send a pr.

@CallumWatkins
Copy link

#940 has resolved this for me.

@shiftkey
Copy link
Contributor

I'm going to close this out as it looks like #940 is The Right Way™ to go about this.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants