繁体   English   中英

如何从针对完整 .NET 框架的 .NET SDK csproj 中删除默认/锁定程序集引用?

[英]How to remove default/locked assembly reference from .NET SDK csproj that is targeting full .NET Framework?

我有一个新的 csproj 格式项目,它正在使用<TargetFramework.net472</TargetFramework> (针对完整的 .NET 框架),它向项目添加了一组默认的不可变程序集引用(如屏幕截图所示)。

伊姆古尔

例如, System.Drawing已锁定且无法删除。

是的,我知道,如果我不使用System.Drawing中的任何类,它就不会被实际引用。

但是,有什么办法可以删除/忽略/隐藏它吗?

我已经尝试过alias技巧来隐藏它:

<Reference Update="System.Drawing">
  <Aliases>excluded</Aliases>
  <Private>false</Private>
</Reference>

不工作。

我并不反对System.Drawing本身——但是,如果我有另一个程序集导出具有完全相同的命名空间和名称的类型——如何“隐藏”现有引用呢?

更新:csproj 看起来像这样:

<Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net472</TargetFramework>
    </PropertyGroup>
</Project>

默认情况下,新.net 4.7.2项目中未引用System.Drawing。

如果您引用它,则可以在需要时删除引用

在此处输入图片说明

以防万一有人仍在寻找答案:将DisableImplicitFrameworkReferences属性设置为 true,然后添加对实际需要的程序集的引用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM