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

Dej*_*jan 1 c# gac .net-core visual-studio-2017

是否有可能引用System.Windows.Forms目标为 的 Sdk 项目(VS 2017)net462?就像是:

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <TargetFrameworks>net462</TargetFrameworks>
    ...    
  </PropertyGroup>
  <PackageReference Include="System.Windows.Forms" Version="4.0.0" />
...
Run Code Online (Sandbox Code Playgroud)

或者概括一下这个问题:如何从 Sdk 项目中使用驻留在 GAC 中的系统库?根据此讨论,它似乎不是开箱即用的支持。

让我困惑的部分是,定位给人一种可以访问完整net462框架的印象。然而,如果 GAC 大会成为一个问题,那么该框架就不再那么“完整”了。因此,我的问题。

ash*_*ber 5

以下内容为我编译:

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

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

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

</Project>
Run Code Online (Sandbox Code Playgroud)
using System.Windows.Forms;

namespace ClassLibrary1
{
    public class Class1
    {
        public Class1()
        {
            var form = new Form();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

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