NuGet 发布类库,依赖项的问题

最近在做新生入学的项目时,遇到nuget包发布的问题,因为权限系统,评教系统都会用到我们的WCF和Contract层的类库,使用nuget将包发布到网上,大家会自行下载。

但是在发布的过程中遇到了难题,由于系统之间的交互我们也引用了底层的类库,但是在发布的过程中出现了依赖项的问题,如果大家引用了我发布的包,出现了人家不想要的类库文件,当然这个包发布的是错误的。这三四天一直在解决包的依赖项的问题。但是问题最后还是让我找到了。

关于nuget包发布的详细内容我就不说了,因为网上这样的教程太多了,下面我来说说为什么会出现依赖项的问题:

大家在做项目的时候一定知道这个packages.config这个文件,是的这就是用来配置包的一个重要文件。但是当时为什么就没有找到这个文件呢。下面来看看我的发现之路!

下面是一些nuget包发布的过程

在这里我想说一下,关于这个“The replacement token ‘description’ has no value”或者‘The replacement token ‘author’ has no value’的问题,让我百思不得其解,最终原因在这!

在VS中对文件进行相应的配置:

然后对生成的.nuspec文件进行修改:

这样上面的问题就会迎刃而解了,但是今天重点不是它,接着向下看:

看到红色部分,其实在打包过程中人家就提示你了,在这个文件夹下面会产生依赖项,是否继续生成!进入提示的这个文件夹会看到下面的系统,如果你想让发布的类库有依赖项,进行如下配置就行,如果不想,注释即可!

这样就会发布成功了!

来网上看看我们发布的包是否含有依赖项:

这样我们就成功的取消了依赖项!

只有发现问题解决问题才能会成长,在这个过程中我们绝对不可以将就!还是那句话,不将就是发现的源动力!

时间: 2024-10-27 06:52:44

NuGet 发布类库,依赖项的问题的相关文章

更新nuget 出现 循环依赖项

错误页: 在使用nuget 管理引用时候,更新出现 上面的情况. 这个问题,是更新的时候出现的.然后就查了查  什么是 循环依赖项. 循环依赖项目: 说的简单点就是,A引用了B,B又企图去引用A. 当然谁都不会 这样去做的.但是引用关系的时候是会传递的. 所以可能造成,B引用了A,C引用了B.然后不自主的C又引用A.此时就会出现  循环依赖. 看上图,更新出现 循环依赖. 举个例子: 如图,该包 依赖于  knockoutjs包. 如果,你的项目中,已经引用了knockoutjs包之后,再去引用

【.NET】NuGet发布类库包,轻松管理dll文件

大中型项目中总是有专门人员去开发和维护底层类库的,封装自己的类库不仅可以提高代码的复用度,减少开发量,使代码更简洁,还可以提高运行速度.但是,类库方法的增加与修改导致使用该类库的系统开发人员频繁地删除和添加引用.如果底层dll文件过多,任何一次变动都将导致高错误率的修改!!为了方便管理dll文件,我们使用NuGet动态更新的方式. 如果您是类库的开发者与维护者,请阅读发布篇.如果您是基于类库的开发者,请阅读使用篇. 发布篇: (假设此时您已经开发好了一个类库.) 1.下载NuGet.exe,并将

什么是Maven? 使用Apache Maven构建和依赖项管理

通过优锐课java架构学习中,学到了不少干货,整理分享给大家学习. 开始使用最流行的Java构建和依赖管理工具Maven Apache Maven是Java开发的基石,也是Java使用最广泛的构建管理工具. Maven简化的基于XML的配置模型使开发人员能够快速描述或掌握任何基于Java的项目的轮廓,这使得启动和共享新项目变得很容易. Maven还支持测试驱动的开发,长期项目维护,其声明性配置和广泛的插件使其成为CI / CD的流行选择. 本文是对Apache Maven的快速介绍,包括Mave

[转] 使用 NuGet 发布自己的类库包(Library Package)

NuGet是一个为大家所熟知的Visual Studio扩展,通过这个扩展,开发人员可以非常方便地在Visual Studio中安装或更新项目中所需要的第三方组件,同时也可以通过NuGet来安装一些Visual Studio的插件等.作为一名开发人员,您可能也会开发一些公共组件以供他人使用,本文将一步步介绍如何以最简单的方式将自己所开发的类库包发布到nuget上,以供更多的人使用. 背景 如果你还是不知道什么是NuGet,那么就看这样一个案例:我现在需要在我的项目中引用Castle.Core程序

使用NuGet发布自己的类库包(Library Package)

STEP 1:注册并获取API Key 首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key,这个过程很简单,我就不作说明了. STEP 2:下载NuGet.exe NuGet有个命令行工具:NuGet.exe;为了方便使用,请设置机器的PATH环境变量[exe所在目录],将NuGet.exe的路径添加到PATH中. 在http://nuget.codeplex.com/releases页面底部找到NuGet.exe,点击下载即可 STEP 3:设置

NuGet——发布自己的类库包

简单介绍: NuGet是.Net平台下的一个开源项目,它是VS的一个扩展,在使用VS开发基于.NET  Framework的应用时,NuGet能够把项目中添加,删除,更新引用的工作变得更加快捷方便.简单点,NuGet就是可以把DLL文件/文件添加到项目中,进而省略了繁琐而古老的拷贝方式. 学习背景: 刚接手系统的时候,是因为自己对于需求特别的了解,但是由于之前的种种原因,自己对于这短时间学习的了解的新知识是一无所知啊!所以当时接手的第一感觉就是学生端--我该如何调用其他的接口呢?如果拷贝/调用-

VS 中NuGet 尝试还原程序包时出错"*"已拥有为"**"定义的依赖项

之前从Git检出项目以后,项目编译不能通过,发现是缺少依赖的外部插件,于是通过NuGet去获取项目依赖的插件,如何通过NuGet恢复使用的插件请使用NuGet还原项目插件. 但是就是在使用NuGet还原依赖插件的时候,出现了"尝试还原程序包时出错"*"已拥有为"**"定义的依赖项"的错误提示,如下图: 在网上搜索好久也找不到类似的回答,最后无奈,问项目组老大,终于得到了解决方案:更新NuGet插件! 更新NuGet后,问题就解决了,至于如何更新N

c#网站项目的发布:项目方式、webSite网站模式(未能获得项目引用XXX的依赖项的解决)

c#网站项目的发布:项目方式.webSite网站模式(未能获得项目引用XXX的依赖项的解决). webSite模式是codefile="default.aspx.cs",项目方式是codebehind="default.aspx.cs" inherites="",编译出来bin是项目名.dll. 我比较喜欢项目方式,看着整洁.编译后,把bin和文件拷出来,删一下*.cs代码文件不拷给客户,删一下bin里的pdb文件,就行了. webSite发布比

IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法

未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序.              说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息.             异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项.试图加载格式不正确的程序.源错误: 执行当前 Web