C# 如何不为.NET Core控制台应用引用Microsoft.NETCore.App的依赖项?

C# 如何不为.NET Core控制台应用引用Microsoft.NETCore.App的依赖项?,c#,.net,asp.net-core,nuget,.net-core,C#,.net,Asp.net Core,Nuget,.net Core,我有一个全新的.NET核心应用程序。默认情况下,.NET Core应用程序引用Microsoft.NETCore.AppNuGet包;我想卸载它引用的某些包,即System.Collections.Immutable,这样我就不能从我的应用程序中使用其中的类型 当Microsoft.NETCore.App引用被隐式包含时,我该怎么做?默认安装的软件包现在在.csproj文件中甚至没有提到,那么我应该如何删除它们呢 以下是我的.csproj文件的内容: <Project Sdk="Micro

我有一个全新的.NET核心应用程序。默认情况下,.NET Core应用程序引用
Microsoft.NETCore.App
NuGet包;我想卸载它引用的某些包,即
System.Collections.Immutable
,这样我就不能从我的应用程序中使用其中的类型

Microsoft.NETCore.App
引用被隐式包含时,我该怎么做?默认安装的软件包现在在
.csproj
文件中甚至没有提到,那么我应该如何删除它们呢

以下是我的
.csproj
文件的内容:

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

  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp1.1</TargetFramework>
  </PropertyGroup>

</Project>

Exe
netcoreapp1.1

NuGet支持PackageReference上的标志,允许您控制从依赖项安装哪些资产。您可以排除System.Collections.Immutable的部分,如下所示:

<ItemGroup>
  <PackageReference Include="System.Collections.Immutable" Version="1.3.0" ExcludeAssets="Compile" />
</ItemGroup>


有关更多详细信息,请参阅。

也许有人会想出办法,但我对此表示怀疑。因此,最好描述一下你想要的结果,也许有人能以不同的方式帮助你达到目的。e、 g.你只是想限制其他开发人员使用这个特定的名称空间吗?在2.0中,
Microsoft.NETCore.App
没有任何依赖项,只有大量DLL。没有理由这样做。如果您不想使用.NET Core,只需将.NET Framework作为目标,而不是.NET Core或交叉编译,以实现排除程序集的目标?还是仅仅为了强制执行不使用代码?最后一个可能是roslyn分析器的一个很好的用例。@MartinUllrich:我刚刚来到这里,试图实际排除程序集,这样我就可以发布一个带有错误修复的私人编译版本。