.Net 标准 Microsoft.Win32 不包含 OpenFileDialog() 方法

.Net Standard Microsoft.Win32 does not contain OpenFileDialog() Method

我正在尝试在我的 WPF 应用程序中打开文件对话框,该应用程序是一个 .Net Core 应用程序,并使用我所有代码所在的 .Net 标准库。但是,当我尝试从 Microsoft.Win32 命名空间继承的 OpenFileDialog() 方法时,它说“当前上下文中不存在名称 OpenDialog”,即使在手动添加命名空间后,这也是重复出现的错误。然而。当我在我的 .netcoreapp 中尝试这个时,它工作得很好。让我得出结论,这可能只是 .netstandard 的问题。我的问题是最好的解决方法是什么,我无法将代码放入我的 .NetCore WPF 应用程序中,因此唯一的其他选择是创建一个新项目,其唯一目的是打开文件对话框,我发现它有点太多了.请问有没有人有其他选择,或者我做错了。我将感谢您的所有贡献。

Microsoft.Win32.OpenFileDialog 是 Windows 特定的 API,它不是 .NET Standard 的一部分。

您可以创建另一个以 netcoreapp3.1net5.0-windows 为目标的 class 库,然后从这个库中引用您现有的 .NET Standard class 库,例如:

WPF 应用程序->netcoreapp3.1 class 库->netstandard2.0 class 库

另一种选择是使用 Windows Compatibility Pack 作为 .NET Standard 项目的扩展。