使用vsCode开发c#,Forms无法引用

问题描述

使用vsCode编译c#时,出现报错:命名空间“System.Windows”中不存在类型或命名空间名“Forms”(是否缺少程序集引用?)

问题出现的平台版本及自己尝试过哪些方法

配置开发环境时,使用的是.Net6.0

相关代码

粘贴代码文本(请勿用截图)
using System.Windows.Forms;
image.png
image.png

你期待的结果是什么?实际看到的错误信息又是什么?

不需要的 using 指令。 [C#]csharp(CS8019)
命名空间“System.Windows”中不存在类型或命名空间名“Forms”(是否缺少程序集引用?) [C#]csharp(CS0234)

阅读 8.4k
2 个回答

csproj 文件贴一下看看。项目类型是什么?引用里有 System.Windows.Forms 吗?

新手上路,请多包涵

两种方法:
1.新建项目时就选择 winforms 模板,这样生成的 csproj 文件中 TargetFramework 是 net6.0-windows. 你建项目时用的应该是 console 模板,可以手动改一下 csproj,注意同时要加上 UseWindowsForms. 即 csproj 里面把 <TargetFramework... 换成这两行:

<TargetFramework>net6.0-windows</TargetFramework>
<UseWindowsForms>true</UseWindowsForms>

2.手动添加引用,用 VSCode 的话这个要稍微麻烦一点,在 PropertyGroup 后面加上

<ItemGroup>
 <ItemGroup>
    <Reference Include="System.Windows.Forms">
      <HintPath>C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App\6.0.0\System.Windows.Forms.dll</HintPath>
    </Reference>
  </ItemGroup>
</ItemGroup>

版本号或路径在你机器上可能不一样。而且这样引用只引用了一个dll,应该没法使用 WinForms 的窗体之类的功能