添加nuget包时不会自动安装依赖项
Posted
技术标签:
【中文标题】添加nuget包时不会自动安装依赖项【英文标题】:No Dependencies are automatically installed when adding nuget package 【发布时间】:2020-06-16 12:56:30 【问题描述】:我正在创建一个小型 nuget 包供内部使用(我创建了 .NET 标准项目以同时使用 .NET Framework 或 .NET Core)。我创建了一个构建定义来构建库,然后将其推送到我公司的 Nuget Feeds。
我有两个问题:
如何设置它在 tfs 2017 中对构建进行排队时自动增加我的 nuget 包的版本&我可以为我的包设置一些信息,如作者、公司...吗?
李>在 TFS 包中包含该包之后。我试图将我的 nuget 包添加到我的项目中。 nuget 引用的包不会自动添加到项目中。我可以看到,它显示“无依赖关系”,但事实上,我在我的库中使用了 2 个包,分别是 Newtonsoft 和 StackExchange.Redis。因此,当我运行调试时,显示错误“找不到 StackExchange.Redis...”
这很奇怪
在我的库项目设置中,我可以看到
【问题讨论】:
【参考方案1】:有两种方法可以打包 nuget 包。您可以使用“nuget pack”或“dotnet pack”(如果您的解决方案中有一些 dotnet 核心)。不同之处在于 dotnet pack 将在您的 nuspec 中创建一个依赖项部分,除非您使用实际的 nuspec 文件,否则您会在安装时看到默认情况下不会出现 nuget pack 的依赖项。如果您确实创建了一个 nuspec 文件,则需要将依赖项部分添加到您的文件中,以便在安装时弹出它们。查看here 获取有关 nuspec 文件的信息。
对于您的版本号,它实际上也在元数据部分的 nuspec 文件中,有一个带有您想要的版本的标签。 TFS nuget pack 任务作为下拉列表,可用于发送版本号。对于此任务,您可以使用 nuspec 文件或直接使用 csproj。
对于使用 dotnet core 任务的 dotnet pack,您有相同的选项
更新:
如果您在选项选项卡中将内部版本号版本模式更改为 4(或 3)位模式,例如 $(Date:yyyy.MM.dd).$(Rev:r),例如2020.03.05.xx(其中 xx 将在同一天为每个构建增加并在第二天下降到 1)或 1.0.$(Rev:r) 这将是 1.0.xx 将永远增加,直到您更改 1.0值,然后使用“使用内部版本号”它会为您完成。
【讨论】:
嗨@Etienne,我现在可以在使用 dotnet pack 命令时拥有依赖关系。关于版本增量,我想我必须编写一些 powershell 脚本来更新变量值:Majo.Minor.Sub.Build。你知道如何拥有那种 powershell 脚本吗?以上是关于添加nuget包时不会自动安装依赖项的主要内容,如果未能解决你的问题,请参考以下文章
卸载包时如何在 pipenv 中自动删除依赖的 Python 包?