一开始使用下面方法调起文件夹窗,始终提示 System.Windows.Forms
这个命名空间无法引入.
// 选择文件夹
System.Windows.Forms.FolderBrowserDialog FolderBrowserDialog = new System.Windows.Forms.FolderBrowserDialog();
if (FolderBrowserDialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
txt.Text = FolderBrowserDialog.SelectedPath;
}
我以为是依赖项没有引入,后面搜索 system.Windows.Forms
,找不到,只有 System_Windows_Forms
,添加之后重新编译也是失败。
最后我发现:在解决方案 --> 项目上鼠标右键,点击属性发现我创建的目标框架是【.NET 5.0】,
在项目文件里面添加下面代码重新编译时也编译失败,提示:NU1102 找不到版本为 (>= 5.0.2) 的包 System.Windows.Forms
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<!-- 其他属性... -->
</PropertyGroup>
<ItemGroup>
<PackageReference Include="Microsoft.Windows.Compatibility" Version="5.0.2" />
<!-- 添加下面这一行 -->
<PackageReference Include="System.Windows.Forms" Version="5.0.2" />
</ItemGroup>
</Project>
最后通过询问 ChatGPT 得知:WinForms 已经不再是一个默认引用的包。在这种情况下,你需要将 UseWindowsForms 设为 true,并确保你的目标框架兼容 WinForms。
<Project Sdk="Microsoft.NET.Sdk.WindowsDesktop">
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>net5.0-windows</TargetFramework>
<!-- 添加下面这两行 -->
<UseWindowsForms>true</UseWindowsForms>
<UseWPF>true</UseWPF>
</PropertyGroup>
</Project>
完美解决!
标签:5.0,FolderBrowserDialog,Windows,System,Forms,文件夹,NET,WPF From: https://www.cnblogs.com/Katakana/p/17971213