Bradley W
1 discussion post
We have been going through the process of installing .NET 8.0.x runtime and removing .NET 7.0.x runtime from our network devices since it reached End of Life on May 14, 2024. After installing .NET 8 runtime and removing .NET 7 runtime from a few test devices, we found that Display fusion stopped working and shows the error "You must install or update .NET to run this application. Framework: 'Microsoft.NETCore.APP', versin '7.0.0' (x64)" after launching the application. The Display Fusion download link states under the system requirements “The Microsoft .NET 8 desktop runtime is required and will be installed automatically if needed”. I thought maybe the 10.1.2 Display Fusion installer had changed since the last time we downloaded it but after redownloading the installer and comparing the hashes, they were the same installer. I uninstalled .NET 7 runtime on a computer and reinstalled the Display Fusion using the installer that I had just downloaded but I was greeted with a notice that .NET 7 Runtime would be installed, which contradicts what the website says, and sure enough it was installed. After looking through the program files, I discovered many *.runtimeconfig.json files that all had the same json configuration and created a simple powershell script to replace all the runtimeconfig.json file contents to list the version 8.0.0 instead of 7.0.0. After running the script, I was able to open and run Display Fusion using .NET Runtime 8.
Here is the script that I created. Hope this helps someone.
$folderPath = "C:\Program Files\DisplayFusion"
$replacementContent = @"
{
"runtimeOptions": {
"tfm": "net8.0",
"frameworks": [
{
"name": "Microsoft.NETCore.App",
"version": "8.0.0"
},
{
"name": "Microsoft.WindowsDesktop.App",
"version": "8.0.0"
}
],
"configProperties": {
"System.Reflection.Metadata.MetadataUpdater.IsSupported": false
}
}
}
"@
# Get all files with .runtimeconfig extension in the specified folder
$runtimeConfigFiles = Get-ChildItem -Path $folderPath -Filter "*runtimeconfig*"
# Replace the contents of each file
foreach ($file in $runtimeConfigFiles) {
Set-Content -Path $file.FullName -Value $replacementContent
}
Kevin_70
1 discussion post
Bradley W, your fix worked great! I enjoy DisplayFusion and for a moment there, I thought I was going to be forced to change to a different tool. But, I was able to get it functioning again based on what you shared.
Many thanks!!
Jeff Weeks
7 discussion posts
Clipboard Fusion is also affected.
Laurie Flandrau
4 discussion posts
Thank you for the information. How do you run the script?
Jeff Weeks
7 discussion posts
No need for another script. Bradley W's script at the beginning of the post is sufficient.