需求是什么?
需要在DotNet6.0的WPF框架上使用OpenFileDialog对话框。
问题是什么?
在DotNet6.0的WPF框架上使用OpenFileDialog对话框,是无法直接添加程序集的。
但是在DotNet Framework上使用,可以直接右击项目中的引用—》添加引用—》点击程序集—》搜索System.Windows.Forms,最后添加到项目中。
如何解决?
(1)“从系统C盘里搜索到System.Windows.Forms.dll放到项目里,也会出现异常,而无法识别WPF自带的一些初始化方法。”这句话是从其他地方看到的,小编并没有验证过这句话的真实性。
(2)可以将下边这段代码添加进去,进行如下操作:
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net6.0-windows</TargetFramework>
<Nullable>enable</Nullable>
<UseWPF>true</UseWPF>
<AssemblyVersion>1.0.1</AssemblyVersion>
<FileVersion>1.0.1.0</FileVersion>
<UseWindowsForms>true</UseWindowsForms>
</PropertyGroup>
![](https://img-blog.csdnimg.cn/img_convert/5f591c36744f063ead5b7097798cf331.png)
这样就不需要引用程序集了,可以直接使用OpenFileDialog对话框。但是这种方案也是有问题的,不能在DotNet6.0的类库或者是WPF控件类库中使用,只能在WPF的应用程序中使用。但是在DotNet Framework的类库中,不需要此配置文件就可以直接使用。
(3)综上所述,只有一种稳定的方案了,引用Microsoft.Win32,就可以直接在在DotNet6.0的应用程序、类库或者是WPF控件类库中使用OpenFileDialog对话框,