我使用.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”
是否可以选择不安装所有依赖项?
答案 0 :(得分:3)
使用PackageReference时,有一些方法可以控制依赖项资产。
如here所述:
IncludeAssets:这些资产将被消耗
ExcludeAssets:这些资产不会被消耗
PrivateAssets:这些资产将被消耗,但不会流到父项目
在您的情况下,您需要使用如下的PrivateAssets:
<ItemGroup>
<PackageReference Include="SomePackage" Version="7.12.4">
<PrivateAssets>all</PrivateAssets>
</PackageReference>
</ItemGroup>
由于您的项目使用SomePackage,但是您不希望在使用新的NuGet软件包时安装SomePackage。
答案 1 :(得分:1)
我认为PrivateAssets可以为您提供帮助。尝试将PackageReference
更改为
<PackageReference Include="UmbracoCms" Version="7.12.4">
<PrivateAssets>all</PrivateAssets>
</PackageReference>