创建一个 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。
使用 .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。