搭建自己的NuGet服务器以及在VS中自动生成NuGet包

关于NuGet的介绍已经很多,可以参考下面的:

NuGet学习笔记(1)——初识NuGet及快速安装使用 http://kb.cnblogs.com/page/143190/

NuGet学习笔记(2)——使用图形化界面打包自己的类库 http://kb.cnblogs.com/page/143191/

NuGet学习笔记(3)——搭建属于自己的NuGet服务器  http://kb.cnblogs.com/page/143192/

上面的文章介绍了搭建Web版本的NuGet服务器以及用图形化的方式生成NuGet包。

用NuGet.Server管好自家的包包 http://www.cnblogs.com/dudu/archive/2012/06/05/nuget_server_push.html

上面的文章介绍了搭建Web版本的NuGet服务器,以及自动化生成NuGet包的方法

本文介绍简单的NuGet服务器,以及VS2013自动化生成NuGet包的内容。

一、VS自动生成NuGet包
1、在VS中创建类库项目

2、启用NuGet程序包还原(Enable NuGet Package Restore)

在解决方案上右击,选择“启用NuGet程序包还原”

确定后会在解决方案中增加一个“.nuget"文件夹,该文件夹有三个文件。

此时,打开项目文件ClassLibrary1.csproj,可以看到类似下面的内容,注意:下面绿色背景行的内容是否出现在ClassLibrary1.csproj中

<?xml version="1.0" encoding="utf-8"?>

<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">

<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists(‘$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props‘)" />

<PropertyGroup>

<Configuration Condition=" ‘$(Configuration)‘ == ‘‘ ">Debug</Configuration>

<Platform Condition=" ‘$(Platform)‘ == ‘‘ ">AnyCPU</Platform>

<ProjectGuid>{92A6F604-9829-49FB-8B06-FF2E4C757EC4}</ProjectGuid>

<OutputType>Library</OutputType>

<AppDesignerFolder>Properties</AppDesignerFolder>

<RootNamespace>ClassLibrary1</RootNamespace>

<AssemblyName>ClassLibrary1</AssemblyName>

<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>

<FileAlignment>512</FileAlignment>

<SolutionDir Condition="$(SolutionDir) == ‘‘ Or $(SolutionDir) == ‘*Undefined*‘">..\</SolutionDir>

<RestorePackages>true</RestorePackages>

</PropertyGroup>

<PropertyGroup Condition=" ‘$(Configuration)|$(Platform)‘ == ‘Debug|AnyCPU‘ ">

<DebugSymbols>true</DebugSymbols>

<DebugType>full</DebugType>

<Optimize>false</Optimize>

<OutputPath>bin\Debug\</OutputPath>

<DefineConstants>DEBUG;TRACE</DefineConstants>

<ErrorReport>prompt</ErrorReport>

<WarningLevel>4</WarningLevel>

</PropertyGroup>

<PropertyGroup Condition=" ‘$(Configuration)|$(Platform)‘ == ‘Release|AnyCPU‘ ">

<DebugType>pdbonly</DebugType>

<Optimize>true</Optimize>

<OutputPath>bin\Release\</OutputPath>

<DefineConstants>TRACE</DefineConstants>

<ErrorReport>prompt</ErrorReport>

<WarningLevel>4</WarningLevel>

</PropertyGroup>

<ItemGroup>

<Reference Include="System" />

<Reference Include="System.Core" />

<Reference Include="System.Xml.Linq" />

<Reference Include="System.Data.DataSetExtensions" />

<Reference Include="Microsoft.CSharp" />

<Reference Include="System.Data" />

<Reference Include="System.Xml" />

</ItemGroup>

<ItemGroup>

<Compile Include="Class1.cs" />

<Compile Include="Properties\AssemblyInfo.cs" />

</ItemGroup>

<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />

<Import Project="$(SolutionDir)\.nuget\NuGet.targets" Condition="Exists(‘$(SolutionDir)\.nuget\NuGet.targets‘)" />

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">

<PropertyGroup>

<ErrorText>This project references NuGet package(s) that are missing on this computer. Enable NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>

</PropertyGroup>

<Error Condition="!Exists(‘$(SolutionDir)\.nuget\NuGet.targets‘)" Text="$([System.String]::Format(‘$(ErrorText)‘, ‘$(SolutionDir)\.nuget\NuGet.targets‘))" />

</Target>

<!-- To modify your build process, add your task inside one of the targets below and uncomment it.

Other similar extension points exist, see Microsoft.Common.targets.

<Target Name="BeforeBuild">

</Target>

<Target Name="AfterBuild">

</Target>

-->

</Project>

如果没有出现带加号行的内容,需要手动添加上。

第2块绿背景内的代码创建了对.nuget文件夹下的NuGet.targets文件的引用,并添加了缺少NuGet.targets文件的错误信息。

第1块绿背景内的第1行代码创建了SolutionDir 并设置默认值为项目的父目录,NuGet.targets利用这个配置值来找到他需要的NuGet.exe等资源。

第二行代码,RestorePackages被设置为True。

3、设置BuildPackages

2中启用了NuGet还原,但是还需要设置让NuGet自动生成nupkg包文件,用记事本打开.csproj文件添加下面1行语句

<BuildPackage>true</BuildPackage>

到1下一行的话,Debug和Release编译均生成包

到2下一行的话,只用Debug编译才生成包

到3下一行的话,只用Release编译才生成包

4、编译

编译后就可以再bin文件夹下看到.nupkg文件了

在使用VS自带的版本生成系统时,如果让它自动生成版本的build number和revision number的话,默认情况下生成的build号是从2000年1月1日0点0分以来(到生成这个版本时)所经历的整天数,revision号是所经历的时间减去整天数之后,剩下的秒数除以2(不除以2的话,一天有8万多秒,超过了Int16的最大值).

http://www.tuicool.com/articles/N7raEr

来自为知笔记(Wiz)

时间: 2025-01-06 14:55:47

搭建自己的NuGet服务器以及在VS中自动生成NuGet包的相关文章

DLL上传私有Nuget服务器并配置 VS 中Nuget源

 为了避免和官方Nuget服务器冲突,决定搭建自己的Nuget服务器.  编辑包信息 2.上传包 左侧栏目编辑DLL信息,在工具栏上选择Content--Add--LIb Folder后将dll拖进去,完成后保存(上传到服务器上的Packages文件夹)或者直接Publish到服务器上. 3.发布包 填写发布好的Package Server Url 和 发布密钥,点击发布,完成Dll发布到Nuget服务器.  Vs配置 配置Visual Studio 连接 NuGetServer.选择“工具”菜

maven intall在target文件夹中自动生成的war包部署服务器时缺斤少两

1.问题描述,本地改动特别大或者升级系统操作,打war包部署服务器上程序时候,页面或者后台总是报错,原因就是比本地少东西. 2.问题排查解决:maven clean然后maven intall在target文件夹中生成一个war包: 编译之后,target目录层级下自动生成的war包,执行 maven install命令的时候自动生成,但是将war包部署到服务器上,总是提示少页面或者模块,一系列排查依旧少东西,页面和后台的控制台报错等等,页面访问不了页面找不到错误等,一系列排查错误无果,尝试性的

SSM框架搭建(三) 数据库创建和MyBatis生成器自动生成实体类、DAO接口和Mapping映射文件

一:创建数据库 创建Student表 DROP TABLE IF EXISTS `Student`; CREATE TABLE `Student` ( `id` int(11) NOT NULL AUTO_INCREMENT, `user_name` varchar(40) NOT NULL, `password` varchar(255) NOT NULL, `age` int(4) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCRE

图解NuGet服务器搭建和使用过程

听语音 浏览:0 | 更新:2017-10-31 09:13 | 标签:服务器 1 2 3 4 5 6 7 分步阅读 本篇经验将和大家介绍内网搭建NuGet服务器的步骤,希望对大家的工作和学习有所帮助! NuGet网站构建 1 创建一个空的ASNET网站,如下图所示: 注意:将Framework 设置为4.6 以上,NuGet.Server库 要求.net framework 的版本是4.6 . 2 用NuGet为 NuGetServer 安装“NuGet.Server”库. 安装成功后,你的S

CentOS 6.5 网络服务器功能的实现①:运用bind搭建基本的DNS服务器

何谓DNS服务?简而言之,DNS服务在互联网中可以实现域名解析(把域名转换成网络可以识别的IP地址). 名词解释①:正向解析:域名解析IP地址:反向解析:IP地址解析域名. DNS服务的正/反向区域解析文档大部分是靠手打出来的,但我们不必惧怕,毕竟在这里我们还是能摸索出一些窍门的. 注意:防火墙和SELinux都会对DNS服务器有一定的影响,为避免不必要的麻烦,在做实验时建议搭建DNS服务器之前,应把防火墙和SELinux关闭. [情景实例] 配置一个常规DNS服务器 ①搭建一台DNS服务器,为

Linux服务器上的tomcat中部署web项目

首先了解一下下面几个概念,讲得不太准确: 1.JVM JVM是class以及jar(实际上就是很多个class压缩在一起)的运行环境,特征就是java和javaw命令,通过这两个命令,你可以执行class和jar文件.你可以通过-classpath参数指定你需要加载的jar文件 2.JDK JDK就是JAVA的命令行开发环境,内置了JVM,特征就是javac命令,这个命令允许你将.java源文件批量或者单个编译成.class文件,从而可以通过JVM的java命令执行.在编译时你可以通过-clas

手把手教你搭建nuget服务器

新建web项目 工具:VS2013 版本:.Net Framework 4.6,低版本也行,不过要找到对应版本的Nuget.Server 装了NuGet客户端(百度如何安装) WebForm或MVC都行 此web项目将作为自己的NuGet服务器程序 我建的是MVC项目 安装NugetServer 工具栏—工具—NuGet包管理器—程序包管理器控制台 访问:https://www.nuget.org/packages/NuGet.Server/ 找到适合自己的版本,我这里选择的是最新的版本 执行命

玩转Nuget服务器搭建(一)

背景                                                                                      公司项目是分模块进行架构的,因此各个项目之间的相互依赖不仅混乱而且还很复杂,还有一个让人更感到不适的是编译一次整个解决方案,就会让你有种生无可恋的赶脚:为了解决掉这些问题,我决定搭建一个nuget服务器,减少底层类库编译的时间. 实践                                            

NuGet学习笔记(3) 搭建属于自己的NuGet服务器

文章导读 创建NuGetServer Web站点 发布站点到IIS 添加本地站点到包包数据源 在上一篇NuGet学习笔记(2) 使用图形化界面打包自己的类库 中讲解了如何打包自己的类库,接下来进行最重要的一步,从零开始搭建属于自己的NuGet服务器,诚然园子里及其它很多地方已经有完全写好的NuGet服务源码,我们只需要拿来发布一下就ok了,运行也很正常,但作为一名合格的程序猿,不建议这种拿来主义尤其时你自己可以搞定的时候,用别人写好的东西总有些心里不踏实,当有一天它出问题了你的悲剧就开始了,下面