title author date CreateTime categories
VisualStudio 使用新项目格式快速打出 Nuget 包
lindexi
2018-12-17 14:11:50 +0800
2018-10-15 09:13:31 +0800
VisualStudio

本文告诉大家如何通过 VisualStudio 的新项目格式快速打出 Nuget 包

在对比之前使用 nuspc 文件创建 Nuget 包的方法,就会发现本文提供的使用 VisualStudio 新项目格式打出 Nuget 包的效率是很高的。从零开始打包 Nuget 只需要不到 3 分钟,其中有 2.9 分钟都是在等待 VisualStduio 卡

先来回顾一下之前是如何制作一个 Nuget 包的,首先通过 Nuget 创建一个空白的 nuspec 文件

nuget.exe spec

然后打开这个 nuspec 文件,添加自己需要的内容,需要包括 Nuget 的 id 和 作者、描述这些,请看代码

<?xml version="1.0"?>
<package >
<metadata>
<id>包的 id 保证上传到的服务器只有一个 id 是自己创建的</id>
<version>版本号</version>
<authors>作者</authors>
<owners>这个包是谁写的,也就是和作者一样</owners> <description>描述</description>
</metadata>
</package>

还需要自己添加需要打包的文件,或者通过 nuget 的命令自动编译打包,看起来很麻烦

下面就是我写出来的制作一个 lindexi 的包

<?xml version="1.0" encoding="utf-8"?>
<package xmlns="http://schemas.microsoft.com/packaging/2013/05/nuspec.xsd">
<metadata>
<id>lindexi</id>
<version>1.0.0</version>
<authors>lindexi</authors>
<owners>lindexi</owners>
<requireLicenseAcceptance>false</requireLicenseAcceptance>
<description>欢迎访问我博客 https://lindexi.gitee.io/ 里面有很多 UWP WPF 博客</description>
<dependencies>
<group targetFramework=".NETCoreApp2.1">
<dependency id="Microsoft.NETCore.App" version="2.1.0" exclude="Build,Analyzers" />
</group>
</dependencies>
</metadata>
</package>

另外我还需要添加一些文件

具体打包请看 win10 uwp 如何打包Nuget给其他人

而使用 VisualStudio 新项目格式打出 Nuget 包的方法很简单,首先是创建一个 dotnet core 项目,使用这个项目演示

右击解决方案,打包,然后打开项目的bin\Debug文件夹,就可以看到打出来 nuget 包

当然这个粗糙的包还可以做一些修改,例如修改这个包的 id 在 新的项目格式会使用 AssemblyName 作为默认的包的 id 来尝试修改这个值看打出来的包是什么

我修改为 lindexi 请看代码

  <PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp2.1</TargetFramework>
<AssemblyName>lindexi</AssemblyName>
</PropertyGroup>

这时右击项目打包就会在 bin\Debug 文件夹找到 lindexi.1.0.0.nupkg 文件

如果想要自己定义一个 nuget 包的 id 和 AssemblyName 不相同,可以通过修改 PackageId 的方式,具体请看项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - walterlv

这时还可以右击项目属性,通过 VisualStudio 修改属性,如我修改了描述

那么如何验证打出来的包是可以使用的?做法很简单,就是使用 Nuget 安装本地的包的方式

右击项目管理 Nuget 包

点击设置

点击添加一个本地的包,修改输出包的文件夹

切换本地包

点击浏览

点击刚才创建的包

这时就可以看到刚才快速创建的包

项目文件中的已知 NuGet 属性(使用这些属性,创建 NuGet 包就可以不需要 nuspec 文件啦) - walterlv

课件

Create and publish a .NET Standard package using Visual Studio on Windows

2018-12-17-VisualStudio-使用新项目格式快速打出-Nuget-包的更多相关文章

  1. 2019-11-29-VisualStudio-使用新项目格式快速打出-Nuget-包

    title author date CreateTime categories VisualStudio 使用新项目格式快速打出 Nuget 包 lindexi 2019-11-29 10:15:25 ...

  2. 调试大叔V2.1.0(2018.12.17)|http/s接口调试、数据分析程序员辅助开发神器

    2018.12.17 - 调试大叔 V2.1.0*升级http通讯协议版本,完美解决Set-Cookie引起的系列问题:*新增Content-Type编码格式参数,支持保存(解决模拟不同网站或手机请求 ...

  3. 从以前的项目格式迁移到 VS2017 新项目格式

    以前的项目格式使用的是 csproj 的格式,但是 .net core 支持使用 project.json 格式的项目文件,后来还是决定不使用这个格式. VS2017 的项目格式更好读.更简单而且减少 ...

  4. dotnet 新项目格式与对应框架预定义的宏

    在 sdk style 的项目格式支持使用多框架开发,此时需要在代码里面通过宏判断,在编译的时候执行不同的代码.本文告诉大家在框架里面对应的预定义的条件编译符有哪些 在让一个 csproj 项目指定多 ...

  5. 使用批处理根据项目工程文件生成Nuget包并发布(支持.NET Core)

    最近在使用之前自己编写的批处理给.NET Core项目打包时出问题了,发现之前的脚本根本不适用了,折腾了半天,总算解决了.因此在这里分享下经验,并且奉上整理好的脚本. Nuget包这里就不多介绍了,需 ...

  6. 2018.12/17 function 的闭包

    1.闭包:函数在调用的时候会形成一个私有的作用域,对内部变量起到保护的作用,这就是闭包. 2.变量销毁: 1.人为销毁  var a=12; a=null 2.自然销毁  函数调用完成之后 浏览器会自 ...

  7. 2018.12.17 bzoj3667: Rabin-Miller算法(Pollard-rho)

    传送门 Pollard−rhoPollard-rhoPollard−rho板题. 题意简述:给出几个数,让你判断是不是质数,如果不是质数就求出其最大质因子,数的大小为1e181e181e18以内. 先 ...

  8. 2018.12.17 bzoj4802: 欧拉函数(Pollard-rho)

    传送门 Pollard−rhoPollard-rhoPollard−rho模板题. 题意简述:求ϕ(n),n≤1e18\phi(n),n\le 1e18ϕ(n),n≤1e18 先把nnn用Pollar ...

  9. 2018.12.17 hdu2138 How many prime numbers(miller-rbin)

    传送门 miller−rabbinmiller-rabbinmiller−rabbin素数测试的模板题. 实际上miller−rabinmiller-rabinmiller−rabin就是利用费马小定 ...

随机推荐

  1. 一个切图仔的 CSS 笔记

    1,flexbox~注意,设为 Flex 布局以后,子元素的float.clear和vertical-align属性将失效. 在ios8上要加上前缀 display: -webkit-box; dis ...

  2. 解决 php Call to undefined function shm_attach()

    学习php 多进程的时候,运行脚本报错 Call to undefined function shm_attach() ,搜了一下,看到stack overflow 里面提示需要配置这些扩展 exte ...

  3. MySQL Download

    { http://www.wampserver.com/#wampserver-64-bits-php-5-6-25-php-7 }

  4. ibator配置文件说明文档

    1. <classPathEntry>  属性名 说明 示例 location 数据库驱动文件路径 lib/mysql-connector-java-5.1.6-bin.jar   2.  ...

  5. 揭秘 Flink 1.9 新架构,Blink Planner 你会用了吗?

    本文为 Apache Flink 新版本重大功能特性解读之 Flink SQL 系列文章的开篇,Flink SQL 系列文章由其核心贡献者们分享,涵盖基础知识.实践.调优.内部实现等各个方面,带你由浅 ...

  6. 关于web前端网站优化

    不知道是哪位大牛的文章,转过来嘻嘻. 作者:斯迪链接:https://www.zhihu.com/question/21658448/answer/18903129来源:知乎著作权归作者所有.商业转载 ...

  7. 最全的机器学习&深度学习入门视频课程集

    资源介绍 链接:http://pan.baidu.com/s/1kV6nWJP 密码:ryfd     链接:http://pan.baidu.com/s/1dEZWlP3 密码:y82m 更多资源 ...

  8. 如何将指定文件或文件夹直接提交到svn指定目录?

    如何将指定文件或文件夹直接提交到svn指定目录? 一般我们都是按以下步骤操作的: 1.先将那个目录checkout下来 2.将要添加的文件或者文件夹放到这个目录中 3.右击文件执行svn菜单中的add ...

  9. 一个小村庄的烦恼(netty-nio)

    背景:一座大山有个小村庄,住着几百户人家,隔着大山那边几十里山路,有个小集市,家家户户经常翻山越岭买日用品,苦不堪言(同步阻塞,单线程,每户人家一个线程,去赶集了,今天也干不了别的活). 后来村长看着 ...

  10. Spring Boot Redis Cluster实战

    添加配置信息 spring.redis: database: 0 # Redis数据库索引(默认为0) #host: 192.168.1.8 #port: 6379 password: 123456 ...