NuGet自建服务器教程

1.部署服务器

1.1.新建asp.net web 应用程序

在这里插入图片描述
在这里插入图片描述

说明:使用vs2019创建,点击here会显示http
error404,建议使用vs2017。但是用vs2017创建后用vs2019打开显示正常

1.2.安装nuget服务包——NuGet.Server

在这里插入图片描述

1.3.运行项目

运行上述web项目,在浏览器打开
在这里插入图片描述

1.4.删除重复节点

直接运行会报错,根据提示删除重复节点,则可以成功运行
在这里插入图片描述
在这里插入图片描述

1.5.发布项目

右键NuGetWeb项目——发布,选择文件夹(可在本地建一个文件夹专门管理nuget包)
在这里插入图片描述

1.6.配置IIS网站

如果没有开启iis服务,在控制面板——启用或关闭Windows功能中开启iis服务
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

打开上述网站,成功运行即可
在这里插入图片描述
点击here,可发现如图所示信息
在这里插入图片描述

1.7.可能遇到的问题

在这里插入图片描述

解决:这是因为iis安装不完全,打开控制面板——程序——启用或关闭Windows功能,勾选asp.net 4.7,点击确定进行安装,刷新之后即可出现正常页面
在这里插入图片描述

2.生成Nuget包并运用——插件自动化生成

2.1. 安装nuget插件:NuGet.Package.Builder

想要生成哪些项目文件的nuget包,则在对应项目文件安装该插件,安装完后编译时会在生成文件夹中自动生成nupkg文件
在这里插入图片描述

  • 如果想修改版本号,在项目文件——properties——AssemblyInfo.cs中或者在项目中的nuspec文件中修改version信息
    在这里插入图片描述
  • 如果想修改版本号为1.0.*格式(*代表每次编译时版本号自动叠加),需要把对应项目文件.csproj(可右击项目——在文件资源管理器中打开,找到.csproj)中的:
    <Deterministic>true</Deterministic>
    改为:
    <Deterministic>false</Deterministic>
    如下所示:

在这里插入图片描述

2.2.配置发布信息

在package.builder.json文件中(如果有多个项目,则每个项目中的json文件都需要修改):

  • 修改43行:“PublishOnBuild”: false,
    改为:“PublishOnBuild”: true,
  • 修改52行:“Source”: “”,
    改为:“Source”: “E:\NuGetPublish\Packages”,(ps.该路径为上述发布路径下的packages文件夹)
    在这里插入图片描述
    在这里插入图片描述

2.3.配置nuget程序包源

工具——NuGet包管理器——程序包管理器设置——程序包源,输入名称和网址,网址即“1.6.配置IIS网站”步骤中打开的网站上显示的Repository URLs(见下方第二幅图)
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.4.修改程序包源

在nuget管理器中,修改程序包源即可找到刚刚发布的nuget包
在这里插入图片描述

2.5.允许他人访问

如果其它电脑无法访问,打开控制面板——系统和安全——Windows defender防火墙——高级设置——新建入站规则,新增上述端口8091允许连接,重启电脑,则处于同一局域网下的其余电脑可以访问该服务器
在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

3.几点说明

3.1.关于nuget包生成

虽然在debug文件中仅存在最新生成的nuget包,但之前生成的nuget包已经成功发布到指定文件夹,所以无须担心
在这里插入图片描述

3.2.关于版本更新

如果修改assembly中的版本号,再右键重新生成,会在发布文件夹中新生成一个新版本的nuget文件,之前的不会删除

在这里插入图片描述
在这里插入图片描述
Ps.如果起始就是2.0.0.0版本,修改为1.0.0.0版本时,会生成对应的1.0.0.0版本的nupkg文件,但nuget服务器上依然显示最新的版本2.0.0.0

3.3.nuspec参数修改

如果修改nuspec文件其余参数,而不修改版本号
在这里插入图片描述
在这里插入图片描述

注意,上述id的修改必须与程序集名称(如下图)一致,否则会报错,所以最好不要修改,直接采用原始$id$读取assemblyinfo对应参数信息
在这里插入图片描述
在这里插入图片描述
由此可见,当版本号不变时,nuget文件会把之前的文件覆盖掉,可以看出nuget服务器上显示的信息包括nuget包的id(15以上版本是显示id,13版本显示的是title)、创作者、描述、版本号

3.4.nuspec文件参数说明

在这里插入图片描述

3.5.AssemblyInfo.cs参数说明

//设置程序集标题  
[assembly: AssemblyTitle(".NET Pet Shop Model")]  
//设置程序集描述信息  
[assembly: AssemblyDescription(".NET Pet Shop Middle-Tier Components")]  
//设置配置文件,如零售、发布、调试等信息。程序集在运行时不会使用该信息  
[assembly: AssemblyConfiguration("")]  
//设置公司名称信息  
[assembly: AssemblyCompany("Microsoft Corporation")]  
//设置软件名称  
[assembly: AssemblyProduct(".NET Pet Shop 4.0")]  
//设置版权信息  
[assembly: AssemblyCopyright("Copyright ©2005 Microsoft Corporation")]  
//设置合法商标信息  
[assembly: AssemblyTrademark("")]  
//指定程序集支持的区域性  
[assembly: AssemblyCulture("")]  
  
// 将 ComVisible 设置为 false 使此程序集中的类型  
// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,  
// 则将该类型上的 ComVisible 属性设置为 true。  
[assembly: ComVisible(false)]  
  
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID  
[assembly: Guid("df3527a1-e499-48f6-ad7e-d95aaa3d4a9f")]  
  
// 程序集的版本信息由下面四个值组成:  
//  
//      主版本  
//      次版本   
//      内部版本号  
//      修订号  
//  
// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值,  
// 方法是按如下所示使用“*”:  
// [assembly: AssemblyVersion("1.0.*")]  
[assembly: AssemblyVersion("4.0.0.0")]  
[assembly: AssemblyFileVersion("4.0.0.0")]  

4.扩展学习——bat批处理法

4.1.新建文件夹Nuget

在这里插入图片描述

4.2.下载nuget.exe

网址:https://www.nuget.org/downloads
将nuget.exe放入上述文件夹(也可以放入一个专门的路径,方便以后使用),并在电脑属性中设置环境变量(这样就可以无视nuget.exe在哪个文件夹,cmd中直接输入nuget就可以使用)

在这里插入图片描述

4.3.各自生成nuspec文件

在1中输入cmd,enter后输入命令nuget spec,每个项目文件.csproj目录下生成nuspec文件(nuget配置文件),如下图
在这里插入图片描述

4.4.编辑nuspec配置文件,

将各个项目编辑好后的nuspec文件统一剪切到创建的Nuget文件夹中
在这里插入图片描述
在这里插入图片描述

4.4.生成nuget包

运行批处理文件createnuget.bat,生成nuget包.nukpg
在这里插入图片描述
在这里插入图片描述

4.5.推送并发布

运行批处理文件pushnuget.bat,推送到发布文件夹

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
推送后按照2.3和2.4步骤使用即可

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ShirmyMao

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值