码迷,mamicode.com
首页 > 其他好文 > 详细

手把手教你----使用Nuget管理自己的项目库

时间:2015-05-31 21:44:20      阅读:6003      评论:0      收藏:0      [点我收藏+]

标签:nuget   项目库   

什么是NuGet?


技术分享


官网上的解释:NuGet is the package manager for the Microsoft development platform including .NET. The NuGet client tools provide the ability to produce and consume packages. The NuGet Gallery is the central package repository used by all package authors and consumers.
大致的意思:NuGet 是一种 Visual Studio 扩展工具,它能够简化在 Visual Studio 项目中添加、更新和删除库(部署为程序包)的操作。
可以去看一下NuGet 百度百科的介绍。

为什么用NuGet?


    简单的说NuGet可以是我们的工作更方便,当我们的项目里要引用到的一些库时候,比如JQuery、Newtonsoft.Json、log4net等,我们需要从网上下载这些库,然后依次拷贝到各个项目中,当有的类库有更新时又不得不再重复一遍很是繁琐 ,这时就可以考虑使用NuGet来帮我们管理和更新这些类库,而且更新类库时会自动添加类库的相关引用,方便至极。
    在我们做项目的过程中体会到NuGet最大的好处就是可以搭建自己的类库服务器,在开发1.0和2.0期间,我们是一个系统一个解决方案,当两个系统之间存在交互时,就需要引用另一个系统的Dll文件,如果没有NuGet的话,每一次Dll文件更新,就需要去拷贝一份,放到项目的文件夹下,在重新引用,过程显得非常的繁琐。并且在我们3.0的时候,再次对系统进行了细化,每一个系统的每一个模块一个解决方案,也就是业务颗粒化。可想而知,如果还用拷贝的方式的话,有种作死的节奏~~现在用了NuGet,世界开始变得不同了。

怎么使用NuGet?


STEP1:在NuGet官网上注册并获取API Key

首先,你需要到NuGet上注册一个新的账号,然后在My Account页面,获取一个API Key,这个过程很简单,我就不作说明了。

STEP2:下载NuGet.exe

使用之前,需要先下载NuGet.exe,下载链接:http://nuget.codeplex.com/downloads/get/669083为了方便使用,设置机器的PATH环境变量,将其NuGet.exe的路径添加到PATH变量中。我放在F:\Program files下,所以路径为F:\Program files。

STEP3:设置API Key

在官网上找到你的API Key
技术分享

打开CMD,找到NuGet.exe的路径,并运行,然后输入下面的命令:

nuget setApiKey <my_api_key>

‘‘‘示例‘‘‘
nuget setApiKey 5fadcb82-ee54-4164-853a-7d924aa2e059

运行结果:

技术分享

SETP4:开发自己的类库

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace NuGetTest
{
    public class NugetTest
    {
        public static String ReturnInfo()
        {
            return "时光荏苒,岁月如梭,这一年我们就要毕业了!";
        }

    }
}

然后打开AssemblyInfo.cs文件,将assembly的属性设置好,记得再设置一下AssemblyVersion特性,以指定我们类库的版本。目前使用1.0.0.0版本:

using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;

‘‘‘ 有关程序集的常规信息通过以下‘‘‘
‘‘‘ 特性集控制。更改这些特性值可修改‘‘‘
‘‘‘ 与程序集关联的信息。‘‘‘
[assembly: AssemblyTitle("NuGetTest")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("LingZaiCompany")]
[assembly: AssemblyProduct("NuGetTest")]
[assembly: AssemblyCopyright("Copyright ?  2015")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]

‘‘‘ 将 ComVisible 设置为 false 使此程序集中的类型‘‘‘
‘‘‘ 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型,‘‘‘
‘‘‘ 则将该类型上的 ComVisible 特性设置为 true。‘‘‘
[assembly: ComVisible(false)]

‘‘‘ 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID‘‘‘
[assembly: Guid("02721613-8a9e-4197-a1fa-b54b2d3c8320")]

‘‘‘ 程序集的版本信息由下面四个值组成:‘‘‘

‘‘‘      主版本‘‘‘
‘‘‘      次版本‘‘‘
‘‘‘      生成号‘‘‘
‘‘‘      修订号‘‘‘

‘‘‘可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值,‘‘‘
‘‘‘ 方法是按如下所示使用“*”:‘‘‘
‘‘‘ [assembly: AssemblyVersion("1.0.*")]‘‘‘
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]

设置好后,编译整个项目待用。

STEP5产生并修改nuspec

nuspec是NuGet将项目打包成nupkg的输入文件,可以通过nuget spec命令产生。在命令提示符下,进入NugetTest.csproj文件所在目录,然后执行:

nuget spec

运行结果:

技术分享

用记事本打开NuGetTest.nuspec文件,把需要替换的信息替换掉,不需要的tag全部删掉,注意里面的$xxx$宏,这些就是引用了AssemblyInfo.cs中的设置值,在编译产生package的时候,会使用AssemblyInfo.cs中的相应值进行替换。完成编辑后,我们的nuspec文件如下:

<?xml version="1.0"?>
<package >
  <metadata>
    <id>$id$</id>
    <version>$version$</version>
    <title>$title$</title>
    <authors>$author$</authors>
    <owners>$author$</owners>
    <requireLicenseAcceptance>false</requireLicenseAcceptance>
    <description>NuGetTest</description>
    <releaseNotes>releaseNotes</releaseNotes>
    <copyright>Copyright 2015</copyright>
  </metadata>
</package>

注意两点:1、$description$使用AssemblyDescriptionAttribute的值进行替换,在产生package之前,一定要记得先编译项目,否则会提示$description$找不到的错误;2、releaseNotes如果没有,就直接删掉这个节点,如果有,则填入自己的内容,不要使用默认内容,否则会在下一步产生警告信息。

STEP6:产生类库包(Library Package)

在NugetTest.csproj的路径下,使用下面的命令产生类库包:

nuget pack NuGetTest.csproj

运行结果:

技术分享

STEP7:发布类库包

使用下面的命令:

nuget push NuGetTest.1.0.0.0.nupkg

运行时遇到点问题,正在调:
技术分享

解决完之后,会更新到博客中。。。。。。

手把手教你----使用Nuget管理自己的项目库

标签:nuget   项目库   

原文地址:http://blog.csdn.net/zlts000/article/details/46272181

(1)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!