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

原创
2017/09/26 20:30
阅读数 4.2K

接手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,否则会出现包拉不下来的情况,最后点击左上角√保存

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

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

4.配置自定义Nuget Server到vs2015

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

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

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

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

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

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

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

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

继续生成解决方案,如果提示缺少自定义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#网站项目

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
0 评论
0 收藏
0
分享
返回顶部
顶部