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

时间:2018-02-04 15:09:03

标签: c# visual-studio-2017 .net-core gac

是否有可能从针对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" />
...

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

让我感到困惑的部分是,定位net462会让人觉得有人可以访问完整的框架。但是,如果GAC程序集是一个问题,那么框架就不再那么“完整”了。因此,我的问题。

1 个答案:

答案 0 :(得分:3)

以下编译:

<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项目中相同的方式添加这些引用。单击Assemblies,然后单击Framework,并选择所需的程序集。