搭建私有 Nuget 服务

在公司内部,有一些类库等是不能对外公开的,通过搭建私有的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服务。
祝大家生活愉快

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容