title author date CreateTime categories
VisualStudio 使用新项目格式快速打出 Nuget 包
lindexi
2019-11-29 10:15:25 +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

2019-11-29-VisualStudio-使用新项目格式快速打出-Nuget-包的更多相关文章

  1. 2018-12-17-VisualStudio-使用新项目格式快速打出-Nuget-包

    title author date CreateTime categories VisualStudio 使用新项目格式快速打出 Nuget 包 lindexi 2018-12-17 14:11:50 ...

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

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

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

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

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

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

  5. pycharm+anaconda在Mac上的配置方法 2019.11.29

    内心os: 听人说,写blog是加分项,那他就不是浪费时间的事儿了呗 毕竟自己菜还是留下来东西来自己欣赏吧 Mac小电脑上进行python数据开发环境的配置 首先下载Anaconda,一个超好用的数据 ...

  6. 2019.11.29 SAP SMTP郵件服務器配置 發送端 QQ郵箱

    今天群裏的小夥伴問了如何配置郵件的問題,隨自己在sap裏面配置了一個 1.    RZ10配置參數 a)       参数配置前,先导入激活版本 执行完毕后返回 b)      输入参数文件DEFAU ...

  7. 2019.11.29 Mysql的数据操作

    为名为name的表增加数据(插入所有字段) insert into name values(1,‘张三’,‘男’,20); 为名为name的表增加数据(插入部分字段) insert into name ...

  8. vs 2019 create new project 创建新项目

    下面的place solution and project in the same directory 不需要勾选

  9. Supervision meeting notes 2019/11/29

    topic 分支:  1. subgraph/subsequence mining Wang Jin, routine behavior/ motif. Philippe Fournier Viger ...

随机推荐

  1. Shell执行脚本

    Shell作用是解释执行用户的命令,用户输入一条命令,Shell就解释执行这一条,这种方式称为交互式,但还有另一种执行命令的方式称为批处理方式,用户事先写一个Shell脚本,Shell可以一次把这些命 ...

  2. de4dot 反混淆

    de4dot .NET deobfuscator and unpacker. Description de4dot is an open source (GPLv3) .NET deobfuscato ...

  3. 一、基础篇--1.1Java基础-MVC设计思想

    MVC简介: MVC(Model View Controller) 是模型(model)-视图(view)-控制器(controller)的缩写.一种软件设计典范,用一种业务逻辑.数据.界面显示分离的 ...

  4. jdbcTemplate的queryForList的使用方法

    jdbcTemplate的queryForList的使用方法如下,它不一样的地方是,它获得的结果,会再放到一个map里去: List rows = jdbcTemplate.queryForList( ...

  5. 全面解读PHP-JS和jQuery

    一.变量的定义 1.未使用值来申明的变量,其值为 undefined. 2.如果重新声明一个变量,该变量的值不会丢失. //定义一个变量 var str = 'hello'; //重新申明 var s ...

  6. React组件库集锦及学习视频

    [转载]https://www.rails365.net/articles/react-zui-hao-de-ui-zu-jian-ku-ji-jin 这里有一篇讨论,说了哪个才是 React 最好的 ...

  7. 浏览器端-W3School-JavaScript-Browser: Navigator 对象

    ylbtech-浏览器端-W3School-JavaScript-Browser: Navigator 对象 1.返回顶部 1. Navigator 对象 Navigator 对象 Navigator ...

  8. 无界面上(linux)运行jmeter(2)

    无界面上(linux)运行jmeter 1.先在bin目录下面创建一个文件夹testplan用来存放脚本(.jmx文件),然后在创建一个文件夹testresult用来存放脚本执行后的结果(.jtl文件 ...

  9. Java学习之==>常用字符串方法

    1.定义字符串 // 定义, 为初始化 String str1; // 定义, 并初始化为null String str2 = null; // 定义, 并初始化为空串 String str3 = & ...

  10. Spring容器启动源码分析

    1. 前言 最近搭建的工程都是基于SpringBoot,简化配置的感觉真爽.但有个以前的项目还是用SpringMvc写的,看到满满的配置xml文件,却有一种想去深入了解的冲动.折腾了好几天,决心去写这 ...