我试图运行一个WinExe与<UseWPF>true</UseWPF>
,但它甚至没有运行一个简单的Hello World程序。我不知道这是怎么回事,唯一的线索就是这个内部异常。
类型为“System”的未处理异常。CSharpProgram中发生BadImageFormatException'。dll:“无法加载文件或程序集”PresentationFramework,版本=4。0.0.0,Culture=中性,PublicKeyToken=31bf3856ad364e35'.无法加载引用程序集以执行。(0x80131058)'
这是我的。csproj文件:
<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>
下面是程序:
using System;
public class Program
{
public static void Main() {
Console.WriteLine("Hello World!");
}
}
任何帮助都非常感谢。
2条答案
按热度按时间ct3nt3jp1#
我不熟悉Visual Studio Code,所以下面并不是如何在VS Code中创建WPF应用程序的答案,但如果需要,可以使用dotnet new创建WPF应用程序。
cmd
窗口查看已安装的SDK:
dotnet --info
新建WPF应用:
dotnet new wpf --framework <TargetFramework> --output <fully-qualified path>
(例如:dotnet new wpf --framework net7.0 --output "C:\Temp\WpfAppTest\WpfAppTest"
)参见TargetFramework
构建/运行应用:
dotnet run --project "C:\Temp\WpfAppTest\WpfAppTest\WpfAppTest.csproj"
使用您喜欢的编辑器开发/修改WPF应用程序(您可以考虑使用Visual Studio)。
j13ufse22#
来自MSDN:
UseWPF
属性控制是否包含对WPF库的引用。这也会更改MSBuild管道以正确处理WPF项目和相关文件。默认值为false
。将UseWPF
属性设置为true
以启用WPF支持。当启用此属性时,您只能以Windows平台为目标。当此属性设置为
true
时,。NET 5+项目将自动导入.NET Desktop SDK
。所以在后面,编译器会自动查找WPF库和。NET桌面SDK。您可以尝试:
1.确认是否安装了所有依赖项(是否有该SDK的所有部件)?转到Visual Studio安装程序并检查/添加必要的部件
1.尝试直接引用这些项目/依赖项。您是否已经安装并安装了所有这些设备?如果是这样,您可以尝试直接从项目中引用它们,以确保它们被正确地拾取。
当您创建默认的WPF应用程序时,它看起来像这样(具有这些依赖项):