大气全屏通用企业网站整站源码,成都市网站建设公司,精品课程网站的建设,免费做网站NuGet是个开源项目#xff0c;项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目#xff0c;.NET Core项目完全使用Nuget 管理组件之间的依赖关系#xff0c;Nuget已经成为.NET 生态系统中不可或缺的一个组件#xff0c;从项目角度#xff0c;将项目中… NuGet是个开源项目项目包括 NuGet VS插件/NuGet Explorer/NuGetServer/NuGet命令行等项目.NET Core项目完全使用Nuget 管理组件之间的依赖关系Nuget已经成为.NET 生态系统中不可或缺的一个组件从项目角度将项目中各种组件的引用统统交给NuGet添加组件/删除组件/以及更新组件即可一键完成大大提升工作效率减少不必要的引用报错。从运维角度可在不影响老版本的情况下发布新版本可统一管理公司各个项目中组件版本不一和各个版本组件的使用情况减少故障发生以并使得项目稳定运行。 以往做nuget包我们一般要么用命令行,要么用nuget的图形化界面去做,但是一些操作比较麻烦.比如引入命名空间,引入第三方nuget包。这些在.NET Core项目里却很简单只需要使用命令行dotnet pack在.NET Core系列 1、.NET Core 环境搭建和命令行CLI入门 做了简要介绍下面我们来详细介绍下这个命令。 dotnet-pack - 将代码打包成 NuGet 包 概要 dotnet pack [--output] [--no-build] [--build-base-path] [--configuration] [--version-suffix] [project] 描述 dotnet pack 命令生成项目并创建 NuGet 包。这个操作的结果是两个 nupkg 扩展名的包。一个包含代码另一个包含调试符号。 该项目被依赖的 NuGet 包装被添加到 nuspec 文件因此他们能够在安装包时得到解决。默认情况下项目到项目之间的引用是不打包到项目中的。如果你想那样做你需要在你的依赖中引用需要项目的 type 节点设置为 “build” 设置就像下面的例子 {version: 1.0.0-*,dependencies: {ProjectA: {target: project,type: build}}
} 默认情况下dotnet pack 首先生成项目。如果你想避免这样传递 --no-build 选项。这在持续集成CI构建场景正如你知道代码仅仅是预生成的示例会是有用的。 选项 [project] 打包的项目。它还可以是一个 project.json 文件的路径或者是目录。如果忽略它将默认为当前目录。 -o, --output [DIR] 指定生成的目录。 --no-build 打包进程中跳过生成阶段。 --build-base-path 指定临时生成产物的目录。默认情况下它们在当前目录的 obj 目录。 -c, --configuration [Debug|Release] 当生成项目时使用的配置。如果没有指定将默认为 “Debug”。 例子 dotnet pack 打包当前项目。 dotnet pack ~/projects/app1/project.json 打包 app1 项目。 dotnet pack --output nupkgs 打包当前的应用程序并将生成的包放置到指定的文件夹中。 dotnet pack --no-build --output nupkgs 打包当前的项目到指定的文件夹中并跳过生成步骤 回到我们在.NET Core系列 3 、使用多个项目 创建的类库项目DotnetNewLib切换到DotnetNewLib 目录下执行 dotnet pack命令 [rootMono DotnetNewLib]# dotnet packProject DotnetNewLib (.NETStandard,Versionv1.6) was previously compiled. Skipping compilation.Producing nuget package DotnetNewLib.1.0.0 for DotnetNewLibDotnetNewLib - /root/DotnetNewLib/bin/Debug/DotnetNewLib.1.0.0.nupkgProducing nuget package DotnetNewLib.1.0.0.symbols for DotnetNewLibDotnetNewLib - /root/DotnetNewLib/bin/Debug/DotnetNewLib.1.0.0.symbols.nupkg 目录结构如下 DotnetNewLib |-- Library.cs |-- project.json |-- project.lock.json —bin —Debug |-- DotnetNewLib.1.0.0.nupkg |-- DotnetNewLib.1.0.0.symbols.nupkg -- netstandard1.6 |-- DotnetNewLib.deps.json |-- DotnetNewLib.dll -- DotnetNewLib.pdb 上面的结构里我把obj目录拿掉了我们看到在Debug目录下生成了2个文件DotnetNewLib.1.0.0.nupkg 和DotnetNewLib.1.0.0.symbols.nupkg, 这些就是nuget 包很简单吧版本号信息来自于project.json文件 { version: 1.0.0-*, buildOptions: { debugType: portable }, dependencies: {}, frameworks: { netstandard1.6: { dependencies: { NETStandard.Library: 1.6.0 } } }} 但是我生成的是Debug我们生成Release 版本 dotnet pack -c Release [rootMono DotnetNewLib]# dotnet pack -c ReleaseProject DotnetNewLib (.NETStandard,Versionv1.6) will be compiled because expected outputs are missingCompiling DotnetNewLib for .NETStandard,Versionv1.6 Compilation succeeded. 0 Warning(s) 0 Error(s) Time elapsed 00:00:03.4976986 Producing nuget package DotnetNewLib.1.0.0 for DotnetNewLibDotnetNewLib - /root/DotnetNewLib/bin/Release/DotnetNewLib.1.0.0.nupkgProducing nuget package DotnetNewLib.1.0.0.symbols for DotnetNewLibDotnetNewLib - /root/DotnetNewLib/bin/Release/DotnetNewLib.1.0.0.symbols.nupkg 生成了Release目录 DotnetNewLib |-- Library.cs |-- project.json |-- project.lock.json —bin —Debug |-- DotnetNewLib.1.0.0.nupkg |-- DotnetNewLib.1.0.0.symbols.nupkg -- netstandard1.6 |-- DotnetNewLib.deps.json |-- DotnetNewLib.dll -- DotnetNewLib.pdb —Release |-- DotnetNewLib.1.0.0.nupkg |-- DotnetNewLib.1.0.0.symbols.nupkg -- netstandard1.6 |-- DotnetNewLib.deps.json |-- DotnetNewLib.dll -- DotnetNewLib.pdb 在Release目录下 生成了2个文件DotnetNewLib.1.0.0.nupkg 和DotnetNewLib.1.0.0.symbols.nupkg第一个文件就是我们想要的nuget包。我们来看下Nuget 包里的具体内容我们可以用 NuGet Package Explorer 工具打开DotnetNewLib.1.0.0.nupkg 里面仅有一个 lib 文件 netstandard1.6 目标配置文件。这意味着我们 NuGet 包只适用于.Net Core 应用程序 针对 NetStandard1.6 和即将到来的 4.6.3文章 拥抱.NET Core如何开发一个跨平台类库 (1) 对Nuget包做了很好的说明了推荐大家阅读, 园子里还有一篇《用命令行工具创建 NuGet 程序包》对Nuget 的详细内容做了讲解。 相关文章 .NET Core系列 1、.NET Core 环境搭建和命令行CLI入门.NET Core系列 2 、project.json 这葫芦里卖的什么药.NET Core系列 3 、使用多个项目.NET Core系列 4 测试 原文地址http://www.cnblogs.com/shanyou/p/5814683.html .NET社区新闻深度好文微信中搜索dotNET跨平台或扫描二维码关注 赞赏 人赞赏