mirror of
https://github.com/NickeManarin/ScreenToGif.git
synced 2026-04-25 23:25:52 +03:00
[GH-ISSUE #1075] [Bug] Error for missing .NET frameworks on ARM64 #811
Labels
No labels
copy cats
duplicated
future feature
pull-request
⬜ Accepted
⬜ Completed
⬜ Help Wanted 💪
⬜ In Progress
⬜ Missing Details
⬜ Pending
⬜ Waiting For Answer ⏳
🆕 feature preview
🔷 Bug 🐛
🔷 Out Of Scope
🔷 Out Of Scope
🔷 Question
🔷Enhancement
🔷Enhancement
🔷Invalid / External
🔷Knowledge Base
🔷Won't Fix
🕑 High
🕑 High
🕑 High
🕕 Medium
🕙 Low
🕛 Critical
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
starred/ScreenToGif#811
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Originally created by @denelon on GitHub (Feb 11, 2022).
Original GitHub issue: https://github.com/NickeManarin/ScreenToGif/issues/1075
Originally assigned to: @NickeManarin on GitHub.
Describe the bug
I installed Screen To Gif using the Windows Package Manager on an ARM64 device (Surface Pro X). After the install I was prompted about missing .NET. I installed the ARM64 version of the Framework and still received the same error.
To Reproduce
Steps to reproduce the behavior:
winget install screentogif -s wingetorwinget install screentogif -s msstoreExpected behavior
I expected the Screen To Gif to launch.
Screenshots

Desktop (please complete the following information):
Additional context
I also attempted to install the x64 version of .NET to resolve the issue, and that still resulted in the same error being displayed.
@denelon commented on GitHub (Feb 11, 2022):
For reference, this is the version of Screen To Gif I attempted to get working:
@marswe commented on GitHub (Feb 11, 2022):
What appears to be happening is that the ARM64 MSI installs the x64 .NET for you rather than ARM64. When you then try to launch the installed ARM64 app, there's no ARM64 .NET and you get the error dialog shown. If the user is installing the ARM64 version of the app, the installer should fetch the ARM64 .NET instead of x64.
Note that a similar issue happens if you use the x86 MSI installer, as it also installs the x64 .NET for you rather than x86.
@NickeManarin commented on GitHub (Feb 12, 2022):
For x86, the installer was not downloading the correct package.
But as for arm64, the download flow was supposed to be ok.
Unless the architecture detection system is not detecting as arm64.
@NickeManarin commented on GitHub (Feb 12, 2022):
Can you run
dotnet --infoto check what's installed?@denelon commented on GitHub (Feb 14, 2022):
@NickeManarin sadly, I just have the one ARM64 device and I had to reimage it. Once that's done, I'll work on a solid repro and share the data with you.
@marswe commented on GitHub (Feb 14, 2022):
This is what you see if you run the ARM64 installer on Windows 11: internally it is detecting the architecture as x64. (If you run it on Windows 10, it detects the architecture as x86.)
I don't see the source code of the installer, but the WixSharp UI is running as an x86 process. That means if it calls GetNativeSystemInfo, the architecture it gets back will be x86 (if Windows 10) or x64 (if Windows 11) for compatibility reasons. To get the true host architecture, it can call IsWow64Process2 instead.
@NickeManarin commented on GitHub (Feb 15, 2022):
Ohh, thank you for the details!
Do you mind testing these binaries and posting the results here?
Test.zip
Example x86 process running in x64:

@marswe commented on GitHub (Feb 15, 2022):
Your x86 EXE on Windows 11 on ARM64 returns:
You can see that IsWow64Process2 will give you the true host architecture.
@NickeManarin commented on GitHub (Apr 25, 2022):
@denelon Are you able to run the latest version?
I'm getting some strange issue, the app crashes with a BadImageException, unless I try to scan the Dll's.
https://github.com/dotnet/wpf/issues/6458
@denelon commented on GitHub (Apr 25, 2022):
I'll see if I can reproduce this.
@denelon commented on GitHub (Apr 26, 2022):
It said it installed, but it doesn't launch.
@denelon commented on GitHub (Apr 28, 2022):
@marswe do you have any ideas here?
@marswe commented on GitHub (Apr 28, 2022):
I see the same problem. If you use the portable ARM64 version and attempt to launch it, you'll get a screentogif process but no window. In the logs you'll see:
It appears to be failing to load the d3dcompiler_47.dll from its own temp directory, but I couldn't tell you why. Let me see if I can get some eyeballs on this internally.
@NickeManarin commented on GitHub (Apr 28, 2022):
Someone else pointed that it could be related to this: https://github.com/dotnet/wpf/pull/5747
I got to try out with .NET 7.
But if that's not solvable with .NET 6, I'll have to drop support for arm64 for now.
@NickeManarin commented on GitHub (Apr 28, 2022):
Strange that when trying to find what was going on, running some tests, checking each assembly with
Assembly.GetName()(in case some was clearly not supposed to be there), the app worked normally.@NickeManarin commented on GitHub (May 1, 2022):
Runs ok with .NET 7.