从命令行为 Jenkins 自动化安装包
Posted
技术标签:
【中文标题】从命令行为 Jenkins 自动化安装包【英文标题】:Installing packages from the command line for Jenkins automation 【发布时间】:2021-10-06 13:26:22 【问题描述】:我必须对 VisualStudio c# Web 服务项目进行自动化测试。 为此,我必须使用 Jenkins 下载项目,对其进行编译、运行,然后在本地网页上运行自动化测试,以确保功能正常。 我的问题是,在尝试构建项目时,它不会恢复所需的所有 NuGet 包。 其中一些不在包装中。配置或项目中。该项目,其他人在网上。配置,但没有其他任何地方。 我尝试了 nuget.exe 和 dotNET,但这些不会下载所需的包 我尝试使用 dotNET 将包添加到项目中,但出现错误: "El proyecto no permite agregar referencias de paquete mediante el comando add package" 该项目不允许通过添加包命令进行包引用。 我尝试通过添加 XML 节点的脚本手动添加引用,通过该脚本我设法让 NuGet 恢复下载包,但这些包没有正确安装,我留下了 *.nupkg 文件,然后我必须解压缩。 现在我对这个问题束手无策,我需要帮助来解决这个问题。 如果我可以不打扰项目的开发人员,我会更喜欢,但我会做任何需要的事情。
【问题讨论】:
您使用的是基于.NET Core的项目?您是否还在“工具”>“选项”>“NuGet 包管理器”>“常规”>“包还原”中选择了Allow NuGet to download missing packages
和 Automatically check for missing packages during build in Visual Studio
选项?并尝试右键单击解决方案节点并选择Restore NuGet Packages
选项来恢复NuGet 包?另外,Install-Package "package name"
命令有效吗?
@Tianyu 这是一个 ASP .Net Core 项目,我试过了,都没有。还原 NuGet 包它与命令 nuget restore 相同,它不会看到缺少包。 Install-Package 给我一个错误:“未找到指定搜索条件的匹配项”。西班牙语的完整错误:
Install-Package : No se encontró ninguna 巧合 para el criterio de búsqueda especificado y el nombre de paquete 'ITextSharp'。 Prueba Get-PackageSource para ver todos los orígenes de paquete registrados disponibles。在线:1 字符:1 + Install-Package 'ITextSharp' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (Microsoft .Power....InstallPackage:InstallPackage) [Install-Package], Ex ception + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage
看起来 NuGet 包的名称是错误的,我的意思是 ITextSharp
== > iTextSharp
。此外,似乎需要版本号。我在 nuget.org here 上搜索过,对于这个特定的包,如果可行,请尝试:Install-Package iTextSharp -Version 5.5.13.2
。
是的,我尝试了名称的多种变体,但总是遇到相同的错误。这次它返回了这个:Install-Package : No se encuentra ningún parametro que coincida con el nombre del parametro 'Version'。 En línea: 1 Carácter: 28 + Install-Package iTextSharp -Version 5.5.13.2 + ~~~~~~~~~ + CategoryInfo : InvalidArgument: (:) [Install-Package], ParameterBindingException + FullyQualifiedErrorId : NamedParameterNotFound,Microsoft.PowerShell。 PackageManagement.Cmdlets.InstallPackage
【参考方案1】:
好吧,经过大量试验和错误后,我设法通过确保 packages.config、Project.csproj 和 Project.sln 文件与项目的工作版本完全相同来使项目正常工作。之后,我使用 nuget restore 下载软件包并使用 .bat 文件解压缩它们。它不漂亮,但它确实有效。
【讨论】:
以上是关于从命令行为 Jenkins 自动化安装包的主要内容,如果未能解决你的问题,请参考以下文章