创建一个 Nuget 包而不将该依赖项添加到当前项目?

Create a Nuget package without adding that dependency to the current project?

使用 .NET Core,我正在尝试创建一个新的 Nuget,但不安装它自己的依赖项。 这是我的新 NuGet 包 csproj:

 <Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup Label="Globals">
    <TargetFrameworks>net461</TargetFrameworks>
    <PackageId>MyFirstNuget</PackageId>
    <Version>1.0.1-prerelease</Version>
    <Authors></Authors>
    <Company></Company>
    <Description></Description>
    <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
    <SccLocalPath>.</SccLocalPath>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="SomePackage" Version="7.12.4" />
  </ItemGroup>
</Project>

当我在项目上安装包时,它会安装包 "SomePackage"

是否有不安装所有依赖项的选项?

我认为PrivateAssets可以帮到你。尝试将 PackageReference 更改为

<PackageReference Include="UmbracoCms" Version="7.12.4">
  <PrivateAssets>all</PrivateAssets>
</PackageReference>

使用 PackageReference 时,有一些方法可以控制依赖项资产。

如前所述here

IncludeAssets: These assets will be consumed

ExcludeAssets: These assets will not be consumed

PrivateAssets: These assets will be consumed but won't flow to the parent project

在您的情况下,您需要像这样使用 PrivateAssets:

 <ItemGroup>
    <PackageReference Include="SomePackage" Version="7.12.4">
       <PrivateAssets>all</PrivateAssets>
    </PackageReference>
  </ItemGroup>

因为您的项目使用了 SomePackage,但您不想在使用新的 NuGet 包时安装 SomePackage。