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

Install .NET dialog does not work #48

Open
alvar-ava opened this issue Jan 19, 2024 · 12 comments
Open

Install .NET dialog does not work #48

alvar-ava opened this issue Jan 19, 2024 · 12 comments
Assignees
Labels
bug Something isn't working improvement General improvement to the toolset

Comments

@alvar-ava
Copy link

When starting GPU Reshape.exe without the correct .NET installed, there is a dialog asking to install .NET. Pressing Yes or No both result in nothing happening.
Not sure if it's supposed to open a web page or windows update or similar.

A suggestion would be to list the version of .NET that's needed in the dialog box, then it would be straighforward to find it myself.
image

@alvar-ava alvar-ava changed the title insstall .NET dialog does not work Install .NET dialog does not work Jan 19, 2024
@SimpsonGSD
Copy link

What version is required? I can't run it.

@nixxes-mbouterse
Copy link

Installing .NET 5.0.17 desktop runtime resolved this issue for me.

@miguel-petersen
Copy link
Collaborator

Hi all,

Please see the /Redist folder in the release package, it currently lists the .NET SDK 5.0 runtimes as a dependency.
https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-5.0.408-windows-x64-installer

This should definitely be more clear, and the dialogue is insufficient here, particularly as it does not appropriately redirect. I'll see to fixing this.

I'll use this issue going forward to track the problem.

@miguel-petersen miguel-petersen self-assigned this Jan 19, 2024
@miguel-petersen miguel-petersen added improvement General improvement to the toolset bug Something isn't working labels Jan 19, 2024
@miguel-petersen
Copy link
Collaborator

Small update on the above.

So this particular message isn't from GPU Reshape itself, but instead the SDK it was built with. There are a couple of reports out there mentioning the same issue, where the buttons don't actually do anything, unfortunately without easy or relevant fixes. I'll continue searching a bit.

I also have the option of pursuing self-contained builds where the .NET runtimes are embedded within. Quick tests proved a little cumbersome with the current set up, but should be possible nonetheless.

If it was up to me I'd replace the dialog with my own, but I am not sure that is possible. Bootstrapping the app with my own ".NET checker" is a possibility, but far from standard.

For the time being the workaround is to install the .NET SDK linked above. If anyone is unable to launch the application with it installed, please do say so, happy to help.

miguel-petersen added a commit that referenced this issue Jan 21, 2024
- Use self-contained applications, avoids relying on installed .NET runtimes
- CMake generated solutions with mixed C#, C++ and C++/CLI projects require that managed project files are in separate folders from native projects due to an issue with Nuget resolving.
- Fixed sham dependencies on schema .NET bindings, as Visual Studio .NET targets cannot depend on custom commands, create intermediary target to merge all schema dependencies.
- Upgraded to .NET6.0, better support for missing .NET runtimes and numerous fixes to self-contained apps
- Default to latest C# language version for the given SDK
- .NET6 implicitly disables com-interop support with trimming, re-enable it

#48
@miguel-petersen
Copy link
Collaborator

miguel-petersen commented Jan 21, 2024

Branch issue/48-net-install now uses .NET self-contained builds. The only big note is that .NET 6.0 was required due to some fixes, however, with it being self-contained it shouldn't matter. See above commit for details.

When proven stable, I'll bring it back to main.

@Hjaltesorgenfrei
Copy link

It is also not listed on https://gpuopen.com/gpu-reshape/#requirements as one of the requirements. Which makes it a bit confusing if you come from the website.

@miguel-petersen
Copy link
Collaborator

That's an great point. Will get it added.

@miguel-petersen
Copy link
Collaborator

@Hjaltesorgenfrei Both the product page and blog post have been updated.

@PerfectlyFineCode
Copy link

PerfectlyFineCode commented Jan 27, 2024

Avalonia v0.11 should support NativeAOT, so if possible publishing it as NativeAOT could solve it as there should be no more runtimes needed; although NativeAOT does have a lot of limitations.

@miguel-petersen
Copy link
Collaborator

miguel-petersen commented Jan 27, 2024

@PerfectlyFineCode Yeah NativeAOT is something I considered, however, the limitations get in the way at the moment. Specifically:

  • No dynamic loading. All features (resource bounds, etc.) are dynamically loaded plugins
  • No C++/CLI. I make use of /CLI for binding code. Something I might change in the future.

To me, the self contained builds seem like the way forward, though it produces a large amount of DLLs. I could merge them, or pursue single file deployments.

@miguel-petersen
Copy link
Collaborator

Much needed update to this thread.

The development branch now uses the .NET 8 SDK, which greatly improves that check, and should navigate correctly to the download. Plus a bunch of other changes and new additions. Validated it in a fresh windows installation (VM).

I did make attempts at single file publishing, and embedding the native libraries into it (to avoid installing the desktop runtimes), but I had some issues with some assemblies. I'll shelf that for now, but might bring it back later since it'd make things a bit more tidy.

I'll all be part of an upcoming release, which should be quite soon. 🙂

@miguel-petersen
Copy link
Collaborator

Hey, the current release features .NET 8, so hopefully this should be resolved.

I may investigate single file publishing and AOT in the future, but the current setup appears reliable.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working improvement General improvement to the toolset
Projects
None yet
Development

No branches or pull requests

6 participants