I’m attempting to run a WinExe with <UseWPF>true</UseWPF>
, but it is not even running a simple Hello World program. I’m not sure what’s wrong at this point, the only clue is this inner exception.
An unhandled exception of type ‘System.BadImageFormatException’ occurred in CSharpProgram.dll: ‘Could not load file or assembly ‘PresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35′. Reference assemblies cannot be loaded for execution. (0x80131058)’
Here is my .csproj file:
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net7.0-windows</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
</PropertyGroup>
</Project>
Here is the program:
using System;
public class Program
{
public static void Main() {
Console.WriteLine("Hello World!");
}
}
Any help is greatly appreciated.
2
Answers
From MSDN:
So in behind, the compiler is automatically looking for WPF libraries and .NET Desktop SDK. You can try:
When you create default WPF application without any changes, it looks like this (have those dependencies):
I’m not familiar with Visual Studio Code, so the following isn’t an answer for how to create a WPF Application in VS Code, but if desired, one can create a WPF Application using dotnet new .
cmd
windowTo see installed SDKs:
dotnet --info
To create a new WPF Application:
dotnet new wpf --framework <TargetFramework> --output <fully-qualified path>
(ex:dotnet new wpf --framework net7.0 --output "C:TempWpfAppTestWpfAppTest"
)see TargetFramework
To Build/Run Application:
dotnet run --project "C:TempWpfAppTestWpfAppTestWpfAppTest.csproj"
Use your favorite editor to develop/modify the WPF Application (you may consider using Visual Studio).