Создать пакет Nuget без добавления этой зависимости в текущий проект? - PullRequest
0 голосов
/ 02 декабря 2018

Используя .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" example

Есть ливариант не устанавливать все зависимости?

Ответы [ 2 ]

0 голосов
/ 03 декабря 2018

При работе с PackageReference есть несколько способов управления активами зависимостей.

Как указано здесь :

IncludeAssets: эти активы будут использованы

ExcludeAssets: эти активы не будут использованы

PrivateAssets: эти активы будут использованы, но не будут переданы в родительский проект

В вашем случае вам необходимо использоватьPrivateAssets, такие как:

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

, поскольку ваш проект использует SomePackage, но вы не хотите, чтобы SomePackage устанавливался при использовании нового пакета NuGet.

0 голосов
/ 02 декабря 2018

Я думаю, PrivateAssets может помочь вам.Попробуйте изменить PackageReference на

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