Visual Studio 如何从面向完整.NET Framework的.NET SDK csproj中删除默认/锁定的程序集引用?

neskvpey  于 2023-01-31  发布在  .NET
关注(0)|答案(2)|浏览(169)

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

例如,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>
kkbh8khc

kkbh8khc1#

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

hgb9j2n6

hgb9j2n62#

默认情况下,新的.net 4.7.2项目中不引用System.Drawing。
如果你引用它,你可以删除引用时,你想要它

相关问题