如何使用nuget管理C#网站项目

接手C#的项目团队后,发现历史遗留的项目dll管理有些混乱,各个开发人员名下的项目有很多自定义dll或者是很老版本的dll文件,往往一个项目从vss拉下来后无法生成成功,提示缺少必要的dll文件,解决方式一般是向初始开发人员索要dll文件,极大的影响开发效率。其实在C#项目中有非常好用的依赖包管理工具Nuget,类似于Java项目用的maven管理Jar包资源。

 

软件环境状态:

git for windows 2.5.0

vs2015

NuGet Package Explorer 3.21.0.0

 

1.新建nuget server,用于存放自定义dll资源,我这安装在192.168.0.136服务器

参考博客园的文章http://www.cnblogs.com/tomfang/articles/3999303.html

 

2.自定义包上传,打开NuGet Package Explorer -> Create a new package点击左上角的编辑按钮,编辑id,vsrsion等信息,拖入dll,特别注意的是自定义的包不能只放一个lib包,还要包含一个空的文件夹content,否则会出现包拉不下来的情况,最后点击左上角√保存

202624_ErDx_815996.png

3.发布新加的SunTime03到Nuget Server,点击FILE -> Publish,配置,点击Publish完成上传

202638_gKRm_815996.png

其中publish key,设置在Nuget Server的web.config文件中

202645_hCck_815996.png

4.配置自定义Nuget Server到vs2015

打开vs2015,vs2015自带nuget包管理器,先升级nuget包管理器到最新版

202651_RSx2_815996.png

配置自定义Nuget Server到vs2015,设置名称为mynuget

202656_XIJr_815996.png

5.改造上一节提到的项目Suntime.DigitalMarketing.Web,统一使用Nuget管理依赖

切换到项目目录下,找出所有的.csproj文件,使用文本编辑工具编辑.csproj文件

由于使用nuget管理会在项目目录下生成一个packages文件夹存放项目中的所有依赖dll,需要删除.csproj文件中所有<HintPath>不指向packages文件夹的<Reference>内容,仔细检查不要遗漏,如下图

202705_oNea_815996.png

处理完所有的.csproj文件,重新打开解决方案并生成解决方案,此时提示SunTime03引用缺失,右键解决方案选择“管理解决方案的NuGet程序包”

202717_8Mui_815996.png

选择自定义源mynuget,在左侧“浏览”选项卡中搜索刚刚上传的dll文件SunTime03,并勾选安装目录,点击安装,安装完后重新生成解决方案

202729_4frm_815996.png

此时提示缺少log4net依赖,由于log4net是公共资源,我们选择nuget.org源

202737_dMVW_815996.png

继续生成解决方案,如果提示缺少自定义dll,则先用NuGet Package Explorer做成自定义dll包上传到Nuget Server,然后如上图在mynuget源中找到并引入到项目中,如果是公共资源到nuget.org中下载安装即可,重复上述步骤直到项目的所有依赖添加完毕最终生成解决方案成功。有些公共dll有版本限定多试几个版本,实在找不到可以在老项目中找到并上传到Nuget Server做成自定义dll包。最后删除项目中packages以外不再使用的dll文件

 

最后不要忘记提交所有变更到gitlab服务器,执行git命令

git add .
git commit -m "fix all dll dependencies"
git push origin master

下一节讲解,如何使用Jenkins持续集成C#网站项目

转载于:https://my.oschina.net/810965872/blog/1543793

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值