如何从 net462 目标 SDK 项目中引用 System.Windows.Forms

How to reference System.Windows.Forms from a net462 targeting SDK project

是否有可能从面向 net462 的 Sdk 项目 (VS 2017) 中引用 System.Windows.Forms?类似于:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net462</TargetFrameworks>
    ...    
  </PropertyGroup>
  <PackageReference Include="System.Windows.Forms" Version="4.0.0" />
...

或者概括一下问题:驻留在 GAC 中的系统库如何从 Sdk 项目中使用?根据 this discussion 看来它不是开箱即用的支持。

让我感到困惑的部分是,定位 net462 给人的印象是可以访问 full 框架。但是,如果 GAC 程序集是一个问题,那么框架就不再是 "full" 了。因此,我的问题。

以下为我编译:

<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFramework>net462</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Reference Include="System.Windows.Forms" />
  </ItemGroup>

</Project>
using System.Windows.Forms;

namespace ClassLibrary1
{
    public class Class1
    {
        public Class1()
        {
            var form = new Form();
        }
    }
}

注意:您可以像在 Framework 项目中一样添加这些引用,而不是直接编辑项目文件,方法是右键单击解决方案资源管理器中的依赖项,然后选择添加引用。单击程序集,然后单击框架,然后 select 所需的程序集。