Visual studio .NETCore:如何从输出中排除NuGet LIB

Visual studio .NETCore:如何从输出中排除NuGet LIB,visual-studio,nuget,Visual Studio,Nuget,我有一个Protobuf文件的项目,它使用Grpc.Core的简单服务器,而不是IIS服务器的ASP.NET Core Kestrel。要使用Visual Studio很好地编译proto文件,您需要在项目中安装NuGet Grpc.AspNetCore。但是,我不希望将它们复制到输出目录,因为它们不需要。当然,我可以在后期构建步骤中删除它们,但这是一种黑客行为。您可以将NuGet包标记为“私有资产所有”,但这不起作用。DLL仍显示在输出箱中。 有人知道怎么玩这个把戏吗?来自 包括资产 这

我有一个Protobuf文件的项目,它使用Grpc.Core的简单服务器,而不是IIS服务器的ASP.NET Core Kestrel。要使用Visual Studio很好地编译proto文件,您需要在项目中安装NuGet Grpc.AspNetCore。但是,我不希望将它们复制到输出目录,因为它们不需要。当然,我可以在后期构建步骤中删除它们,但这是一种黑客行为。您可以将NuGet包标记为“私有资产所有”,但这不起作用。DLL仍显示在输出箱中。

有人知道怎么玩这个把戏吗?

来自

  • 包括资产
    • 这些资产将被消耗掉
  • 排除资产
    • 这些资产不会被消耗
  • 私有资产
    • 这些资产将被消耗,但不会流入父项目
因此,您可以尝试
PrivateAssets=“all”ExcludeAssets=“runtime”

此外,请参见<代码>运行时将阻止将这些程序集复制到生成输出目录。ExcludeAssets=“Runtime”是asnwer,谢谢!在我的例子中,我必须添加一个依赖库(Google.Protobuf.dll),使其在运行时出现,但只要我不依赖ASPNetCore,因为我在运行时不使用它的任何功能,只在设计时使用它,就可以了。