net的相关知识,可以去最课程看看。
使用程序包恢复功能可以在提交源代码时, 不需要将代码库提交到源代码管理中,大幅减少项目的尺寸。所有NuGet程序包都存储在解决方案的Packages文件夹中。要启用程序包恢复功能,可右键单击解决方案(注意,不是右键单击项目文件),并选择 Enable NuGet Package Restore (启用NuGet程序包还原) 选项。屏幕上会显示一系列提示对话框
我们会看到一个确认的提示对话框。
确定之后,开始配置解决方案的 Nuget 包管理。配置完成之后,会有一个提示。
完成之后,解决方案中添加了一个 .nuget 的解决方案文件夹。
以后,在解决方案中,项目需要添加 Nuget 包引用的时候,就可以通过项目的右键菜单,找到 Nuget 包管理器。
比如,我们可以为项目添加一个 Redis 的包。
添加完成之后。
注意,项目中增加了一个 packages.config 的文件。
项目文件中的 packages.config 文件内容
xml version="1.0" encoding="utf-8"?>
<packages>
<package id="StackExchange.Redis" version="1.0.414" targetFramework="net45" />
packages>
实际的程序集在解决方案的文件夹中保存了。
在签入代码的时候,不需要将 packages 中的程序集文件签入代码管理中,这样可以减少代码库的尺寸。
在签出代码之后,如果我们本地缺少某个代码库,比如 jQuery
xml version="1.0" encoding="utf-8"?>
<packages>
<package id="StackExchange.Redis" version="1.0.414" targetFramework="net45" />
<package id="jQuery" version="2.1.3" targetFramework="net45" />
packages>
我们可以在解决方案中右键菜单,为解决方案管理 NuGet 包。
如果我们的解决方案中,有缺失的包,在打开的对话框标题上,会有一个黄色的提示条。最右边有一个 Restore (还原),点击之后,NuGet 就会自动帮我们将相应的代码库下载到本地解决方案的 packages 文件夹中了。
关于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>DEBUGTRACE</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文件了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)