我尝试将 WPF 窗口包含到 ConsoleApp 中。 为此,我参考了
但是当我尝试执行该应用程序时,出现异常
System.BadImageFormatException HResult=0x80131058 消息=可以 不加载文件或程序集'PresentationFramework,版本=8.0.0.0, 文化=中性,PublicKeyToken=31bf3856ad364e35'。参考 无法加载程序集来执行。 (0x80131058)
来源= StackTrace:内部异常1:BadImageFormatException:无法加载引用 组装执行。
我知道我可以包含
<UseWPF>true</UseWPF>
,但我想了解为什么这是必要的,并且引用 WPF 框架(就像在 .NET 4.8 中一样)是不够的。
谢谢你的解释。
来自 .NET Desktop SDK 项目的 MSBuild 参考:启用 .NET Desktop SDK 部分:
要使用 WinForms 或 WPF,请配置您的项目文件。 .NET 5 及更高版本:
- 针对 .NET SDK
。Microsoft.NET.Sdk
- 将
设置为 Windows 特定的目标框架名称,例如TargetFramework
。net6.0-windows
- 添加 UI 框架属性(或两者,如有必要):
- 将
设置为UseWPF
以导入并使用 WPF。true
- 将
设置为UseWindowsForms
以导入并使用 WinForms。true
- (可选)将
设置为OutputType
。这会生成一个应用程序而不是一个库。要生成库,请忽略此属性。WinExe
所以基本上这就是应该如何设置项目以使用相应的组件。