热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

NugetPackager任务-未添加依赖项-NugetPackagertask-dependencyisnotadded

ImusingVisualStudioTeamServicestoautomatethecreationofanugetpackage.Thispackagehas

I'm using Visual Studio Team Services to automate the creation of a nuget package. This package has a dependency on another nuget package (Newtonsoft.Json v8.0.3). I have configured a Nuget Packager task as part of the build:

我正在使用Visual Studio Team Services自动创建nuget包。这个包依赖于另一个nuget包(Newtonsoft.Json v8.0.3)。我已将Nuget Packager任务配置为构建的一部分:

Nuget Packager task configuration

But the generated package doesn't contain the reference to the nuget package:

但生成的包不包含对nuget包的引用:

Generated nuget package without dependencies

Running the following script on my local machine to generate the package:

在我的本地计算机上运行以下脚本以生成程序包:

nuget pack myproject.csproj -Symbols -IncludeReferencedProjects -Properties COnfiguration=Release -OutputDirectory bin/Release

I can see that the dependency is added to the generated package:

我可以看到依赖项被添加到生成的包中:

Generated nuget package with dependencies

What am I missing here? Why the dependencies are not being added to to package that is being generated on the build server?

我在这里想念的是什么?为什么没有将依赖项添加到构建服务器上生成的包中?

2 个解决方案

#1


0  

"IncludeReferencedProjects" is used to add the referenced project to the nuget package, not the referenced nuget packages.

“IncludeReferencedProjects”用于将引用的项目添加到nuget包,而不是引用的nuget包。

Include referenced projects either as dependencies or as part of the package. If a referenced project has a corresponding nuspec file that has the same name as the project, then that referenced project is added as a dependency. Otherwise, the referenced project is added as part of the package. Learn more at NuGet.org.

将引用的项目包含为依赖项或作为程序包的一部分。如果引用的项目具有与项目具有相同名称的相应nuspec文件,则该引用的项目将作为依赖项添加。否则,引用的项目将作为包的一部分添加。在NuGet.org了解更多信息。

When you create the nuget package for the project which referenced to another nuget package. The nuget package dependency will be added automatically if the nupkg file exists in the packages folder. For your issue, you can add a "NuGet Installer" task in your build definition to restore the nuget package files for your solution. And then when you create the nuget package for your project, the referenced nuget package will be added as dependency.

当您为引用另一个nuget包的项目创建nuget包时。如果packages文件夹中存在nupkg文件,则会自动添加nuget包依赖项。对于您的问题,您可以在构建定义中添加“NuGet Installer”任务,以恢复解决方案的nuget包文件。然后,当您为项目创建nuget包时,引用的nuget包将作为依赖项添加。

#2


0  

I have found a solution for my problem, even though I don't understand why the package was not being created properly.

我找到了解决问题的方法,即使我不明白为什么没有正确创建包。

So basically I have 2 builds:

基本上我有2个版本:

  • a "generic" build that will compile the entire solution and run unit tests, etc (automatic, triggered on commit)
  • 一个“通用”构建,它将编译整个解决方案并运行单元测试等(自动,在提交时触发)
  • a build to generate the nuget package (manual)
  • 生成nuget包的构建(手动)

This problem is on the 2nd build. I was trying to understand what were the differences between creating the package manually on my local machine and creating the package on the build server and I realized that on the build server I was not getting the source code for the solution, only for the project folder and the .nuget folder. Given that I have more than 40 projects in the solution it makes no sense to get the whole source code for the 2nd build, right? But for some reason this is not enough to generate the nuget package properly.

这个问题是在第二次构建。我试图了解在我的本地机器上手动创建包和在构建服务器上创建包之间的区别是什么,我意识到在构建服务器上我没有获得解决方案的源代码,仅用于项目文件夹和.nuget文件夹。鉴于我在解决方案中有超过40个项目,获取第二个构建的完整源代码是没有意义的,对吧?但由于某种原因,这还不足以正确生成nuget包。

So, the solution to my problem was to get the source code for the following files/folders:

所以,我的问题的解决方案是获取以下文件/文件夹的源代码:

  • Project folder
  • 项目文件夹
  • .nuget folder (needed when restoring/installing the missing packages)
  • .nu​​get文件夹(恢复/安装缺少的软件包时需要)
  • Solution file (mysolution.sln)
  • 解决方案文件(mysolution.sln)

推荐阅读
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • 在Kubernetes上部署JupyterHub的步骤和实验依赖
    本文介绍了在Kubernetes上部署JupyterHub的步骤和实验所需的依赖,包括安装Docker和K8s,使用kubeadm进行安装,以及更新下载的镜像等。 ... [详细]
  • Nginx使用AWStats日志分析的步骤及注意事项
    本文介绍了在Centos7操作系统上使用Nginx和AWStats进行日志分析的步骤和注意事项。通过AWStats可以统计网站的访问量、IP地址、操作系统、浏览器等信息,并提供精确到每月、每日、每小时的数据。在部署AWStats之前需要确认服务器上已经安装了Perl环境,并进行DNS解析。 ... [详细]
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • 如何搭建Java开发环境并开发WinCE项目
    本文介绍了如何搭建Java开发环境并开发WinCE项目,包括搭建开发环境的步骤和获取SDK的几种方式。同时还解答了一些关于WinCE开发的常见问题。通过阅读本文,您将了解如何使用Java进行嵌入式开发,并能够顺利开发WinCE应用程序。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 本文介绍了Java工具类库Hutool,该工具包封装了对文件、流、加密解密、转码、正则、线程、XML等JDK方法的封装,并提供了各种Util工具类。同时,还介绍了Hutool的组件,包括动态代理、布隆过滤、缓存、定时任务等功能。该工具包可以简化Java代码,提高开发效率。 ... [详细]
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了Windows操作系统的版本及其特点,包括Windows 7系统的6个版本:Starter、Home Basic、Home Premium、Professional、Enterprise、Ultimate。Windows操作系统是微软公司研发的一套操作系统,具有人机操作性优异、支持的应用软件较多、对硬件支持良好等优点。Windows 7 Starter是功能最少的版本,缺乏Aero特效功能,没有64位支持,最初设计不能同时运行三个以上应用程序。 ... [详细]
author-avatar
heimao
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有