NuGet自建服务器教程

NuGet自建服务器教程

1.部署服务器

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

NuGet自建服务器教程
NuGet自建服务器教程

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

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

NuGet自建服务器教程

1.3.运行项目

运行上述web项目,在浏览器打开
NuGet自建服务器教程

1.4.删除重复节点

直接运行会报错,根据提示删除重复节点,则可以成功运行
NuGet自建服务器教程
NuGet自建服务器教程

1.5.发布项目

右键NuGetWeb项目——发布,选择文件夹(可在本地建一个文件夹专门管理nuget包)
NuGet自建服务器教程

1.6.配置IIS网站

如果没有开启iis服务,在控制面板——启用或关闭Windows功能中开启iis服务
NuGet自建服务器教程
NuGet自建服务器教程
NuGet自建服务器教程

打开上述网站,成功运行即可
NuGet自建服务器教程
点击here,可发现如图所示信息
NuGet自建服务器教程

1.7.可能遇到的问题

NuGet自建服务器教程

解决:这是因为iis安装不完全,打开控制面板——程序——启用或关闭Windows功能,勾选asp.net 4.7,点击确定进行安装,刷新之后即可出现正常页面
NuGet自建服务器教程

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

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

想要生成哪些项目文件的nuget包,则在对应项目文件安装该插件,安装完后编译时会在生成文件夹中自动生成nupkg文件
NuGet自建服务器教程

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

NuGet自建服务器教程

2.2.配置发布信息

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

  • 修改43行:“PublishOnBuild”: false,
    改为:“PublishOnBuild”: true,
  • 修改52行:“Source”: “”,
    改为:“Source”: “E:\NuGetPublish\Packages”,(ps.该路径为上述发布路径下的packages文件夹)
    NuGet自建服务器教程
    NuGet自建服务器教程

2.3.配置nuget程序包源

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

2.4.修改程序包源

在nuget管理器中,修改程序包源即可找到刚刚发布的nuget包
NuGet自建服务器教程

2.5.允许他人访问

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

NuGet自建服务器教程
NuGet自建服务器教程

3.几点说明

3.1.关于nuget包生成

虽然在debug文件中仅存在最新生成的nuget包,但之前生成的nuget包已经成功发布到指定文件夹,所以无须担心
NuGet自建服务器教程

3.2.关于版本更新

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

NuGet自建服务器教程
NuGet自建服务器教程
Ps.如果起始就是2.0.0.0版本,修改为1.0.0.0版本时,会生成对应的1.0.0.0版本的nupkg文件,但nuget服务器上依然显示最新的版本2.0.0.0

3.3.nuspec参数修改

如果修改nuspec文件其余参数,而不修改版本号
NuGet自建服务器教程
NuGet自建服务器教程

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

3.4.nuspec文件参数说明

NuGet自建服务器教程

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

NuGet自建服务器教程

4.2.下载nuget.exe

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

NuGet自建服务器教程

4.3.各自生成nuspec文件

在1中输入cmd,enter后输入命令nuget spec,每个项目文件.csproj目录下生成nuspec文件(nuget配置文件),如下图
NuGet自建服务器教程

4.4.编辑nuspec配置文件,

将各个项目编辑好后的nuspec文件统一剪切到创建的Nuget文件夹中
NuGet自建服务器教程
NuGet自建服务器教程

4.4.生成nuget包

运行批处理文件createnuget.bat,生成nuget包.nukpg
NuGet自建服务器教程
NuGet自建服务器教程

4.5.推送并发布

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

NuGet自建服务器教程
NuGet自建服务器教程
NuGet自建服务器教程
推送后按照2.3和2.4步骤使用即可

上一篇:反射+配置文件


下一篇:Linux Binutils使用’as’组装Mips