在公司内部,有一些类库等是不能对外公开的,通过搭建私有的Nuget服务,实现对此的管理。搭建Nuget服务器有两种比较常见的方案,一种是使用官方提供的第三方库 Nuget.server
,另一种使用商业软件GetPro实现(提供Free License)。今天就详细的说一下如何使用Nuget.server
搭建Nuget服务。
使用 NuGet.Server
使用 NuGet.Server
搭建Server是一个常规并且非常简单的方法。简单点说,就是创建一个Asp.Net网站托管Nuget服务。
创建一个Asp.Net Web Application 项目
创建项目时,要注意你选择的.Net Framework 版本号。如果版本号为 4.5.2 ,必须安装 NuGet Server 2.10.3 。
选择Empty模板
通过NuGet工具安装 NuGet.Server
修改配置文件
设置Package存放目录,默认是 ~/Packages
<add key="packagesPath" value="[your packages path]"/>
设置 ApiKey
<add key="requireApiKey" value="true"/>
<add key="apiKey" value="[your api key]"/>
发布网站
- 使用 Visual Studio 直接 publish 到IIS。
-
先 publish 到本地目录,手动部署在IIS上。
这里我选择第二种方式,手动部署网站到IIS上。
新建网站
网站配置
通过浏览器访问
如果不幸,出现下面这种情况
请检查 应用程序池 -> nuget.server 的 .Net CLR 版本是否为 v4.0
OK,到此为止,Nuget服务已搭建完成。下面我们创建一个测试的Package测试一下Nuget服务是否能正常工作,这里我们会使用到Nuget.commandline工具,推荐大家使用Windows包管理器 Chocolatey 进行安装,至于具体的安装方法就不再详细说明。
创建一个类库项目:Test
并新建一个 Test 类,声明一个静态方法 Hello
namespace Test
{
public class Test
{
public static string Hello()
{
return "Hello";
}
}
}
创建 Package manifest 文件
在项目 Test 目录下,执行命令:
nuget spec
Every NuGet package needs a manifest–a .nuspec file–to describe its contents and its dependencies. The NuGet CLI will create this file for you, which you then customize.
修改 Test.nuspec 文件
<?xml version="1.0"?>
<package >
<metadata>
<id>Sunth.TestPackage</id>
<version>0.0.0.1</version>
<title>测试分发包</title>
<authors>sunth</authors>
<owners>cardioray</owners>
<licenseUrl>https://sunfei.lol</licenseUrl>
<projectUrl>https://sunfei.lol</projectUrl>
<iconUrl>https://sunfei.lol/images/favicon.png</iconUrl>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>测试Nuget服务器</description>
<releaseNotes>第一次提交测试包</releaseNotes>
<copyright>Copyright 2017</copyright>
<tags>Test</tags>
</metadata>
</package>
生成 Package 文件
nuget pack Test.csproj -Build -Properties Configuration=Release
发布包到Nuget服务
nuget push Sunth.TestPackage.0.0.0.1.nupkg sunth -Source http://192.168.1.122:11111/api/v2/package
--- output ---
Pushing Sunth.TestPackage.0.0.0.1.nupkg to 'http://192.168.1.122:11111/api/v2/package'...
PUT http://192.168.1.122:11111/api/v2/package/
Created http://192.168.1.122:11111/api/v2/package/ 407ms
Your package was pushed.
可以通过网站查看刚刚上传包的信息
结束
首先希望大家可以根据这篇博客成功搭建属于自己的Nuget服务器,搭建Nuget服务的方法不止这一种,下一篇博文会介绍一些通过ProGet搭建Nuget服务。
祝大家生活愉快