在我的项目中,我使用PackageReference
引用了一些软件包。
但是,如果我将此项目打包到一个NuGet包中,则在我手动将它们添加到.nuspec
文件中之前,它不会包含它们。
我不想手动添加所有依赖项,尤其是每次在.nuspec
中都进行更新。是否可以自动执行此操作?
我在Build上使用nuget pack ProjectFile
或手动将项目打包到NuGet包中,然后我没有指定ProjectFile。
我的 CURRENT NuSpec (具有依赖项):
如果我将其不带任何依赖关系的文件打包在NuSpec中,它将在程序包的.nuspec
文件中(在.nupkg
中)生成一个空的自关闭依赖关系标签:<dependencies />
packages.config
的 AFAIK引用会自动添加,但我不想使用此文件。我改用PackageReferences
。
答案 0 :(得分:3)
实际上,您不再需要.nuspec文件。您可以在csproj文件中指定的所有信息,例如:
<PropertyGroup>
<TargetFrameworks>netstandard2.0</TargetFrameworks>
<PackageId>BinaryTree</PackageId>
<Version>5.1.0.0</Version>
<Authors>RMarusyk</Authors>
<Description>Simple Binary Tree implementation</Description>
<PackageProjectUrl>https://github.com/Marusyk/BinaryTree</PackageProjectUrl>
<PackageTags>binarytree</PackageTags>
</PropertyGroup>
然后将这一行添加到csproj中。
<GeneratePackageOnBuild>true</GeneratePackageOnBuild>
要构建它,我使用:
dotnet build -c Release src/Solution.sln
dotnet pack -c Release src/Solution.sln
dotnet nuget push ..
在我的情况下,它无需定义任何依赖项即可工作