2018-12-17-VisualStudio-使用新项目格式快速打出-Nuget-包
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-包的更多相关文章
- 2019-11-29-VisualStudio-使用新项目格式快速打出-Nuget-包
title author date CreateTime categories VisualStudio 使用新项目格式快速打出 Nuget 包 lindexi 2019-11-29 10:15:25 ...
- 调试大叔V2.1.0(2018.12.17)|http/s接口调试、数据分析程序员辅助开发神器
2018.12.17 - 调试大叔 V2.1.0*升级http通讯协议版本,完美解决Set-Cookie引起的系列问题:*新增Content-Type编码格式参数,支持保存(解决模拟不同网站或手机请求 ...
- 从以前的项目格式迁移到 VS2017 新项目格式
以前的项目格式使用的是 csproj 的格式,但是 .net core 支持使用 project.json 格式的项目文件,后来还是决定不使用这个格式. VS2017 的项目格式更好读.更简单而且减少 ...
- dotnet 新项目格式与对应框架预定义的宏
在 sdk style 的项目格式支持使用多框架开发,此时需要在代码里面通过宏判断,在编译的时候执行不同的代码.本文告诉大家在框架里面对应的预定义的条件编译符有哪些 在让一个 csproj 项目指定多 ...
- 使用批处理根据项目工程文件生成Nuget包并发布(支持.NET Core)
最近在使用之前自己编写的批处理给.NET Core项目打包时出问题了,发现之前的脚本根本不适用了,折腾了半天,总算解决了.因此在这里分享下经验,并且奉上整理好的脚本. Nuget包这里就不多介绍了,需 ...
- 2018.12/17 function 的闭包
1.闭包:函数在调用的时候会形成一个私有的作用域,对内部变量起到保护的作用,这就是闭包. 2.变量销毁: 1.人为销毁 var a=12; a=null 2.自然销毁 函数调用完成之后 浏览器会自 ...
- 2018.12.17 bzoj3667: Rabin-Miller算法(Pollard-rho)
传送门 Pollard−rhoPollard-rhoPollard−rho板题. 题意简述:给出几个数,让你判断是不是质数,如果不是质数就求出其最大质因子,数的大小为1e181e181e18以内. 先 ...
- 2018.12.17 bzoj4802: 欧拉函数(Pollard-rho)
传送门 Pollard−rhoPollard-rhoPollard−rho模板题. 题意简述:求ϕ(n),n≤1e18\phi(n),n\le 1e18ϕ(n),n≤1e18 先把nnn用Pollar ...
- 2018.12.17 hdu2138 How many prime numbers(miller-rbin)
传送门 miller−rabbinmiller-rabbinmiller−rabbin素数测试的模板题. 实际上miller−rabinmiller-rabinmiller−rabin就是利用费马小定 ...
随机推荐
- Android系统开发 编译系统签名的APP
前言 一般情况下,我们使用的签名都是自己生成的Java签名来编译APP. 但是,如果需要开发一些特定设备的APP(对权限有更高的要求,需求一些系统基本的权限,比如让APP可以控制设备的休眠),那就需要 ...
- jQuery FormData使用方法
FormData的主要用途 将form表单元素的name与value进行组合,实现表单数据的序列化,从而减少表单元素的拼接,提高工作效率. 异步上传文件 注:FormData 对象的字段类型可以是 B ...
- 在MsSql中,创建链接服务器
建立链接服务器,主要为了跨服务器数据库操作 创建链接服务器 --创建远程链接服务器 EXEC sys.sp_addlinkedserver @server = 'SyncServer', -- 目标服 ...
- django2 rest_framework + vue.js + mysql5.6 实现增删改查
1.安装pymysql,mysqlclient,创建项目django-admin startproject django3 2.在Mysql中创建一个数据库叫django3db,打开项目,修改一下数据 ...
- Sublime text2 + cygwin编译C++
1.安装cygwin2.安装sublime text23.将g++和gdb加入系统环境变量(windows系统)3.安装package control4.通过package control安装subl ...
- AYITOJ-括号序列-栈的入门
题目描述 给定一个由括号组成的字符串 问其是否为一个合法的括号序列 合法的括号序列的定义如下 1. 空字符串是合法的括号序列 2. 若字符串A是合法的括号序列, 那么{A},[A],(A)也是合法的括 ...
- 创建文件夹、新建txt文件
1.创建文件夹 QString myMkdir(QString path, QString floderName) //参数 path,创建的文件夹所在路径: 参数floderName,所创建的文件 ...
- java编程规约三
七.集合处理 1.尽量使用String对象做Map的key 2.list转数组,用list的toArray(T[] array),传入的参数array是类型完全一样的数组,大小是list.size() ...
- vue-router的访问权限管理
路由守卫(路由钩子.拦截器) vue-router 提供的导航守卫主要用来通过跳转或取消的方式守卫导航.有多种机会植入路由导航过程中:全局的, 单个路由独享的, 或者组件级的. 可以不登录直接进入系统 ...
- netty 使用Java序列化
SubscribeReq package com.zhaowb.netty.ch7_1; import java.io.Serializable; public class SubscribeReq ...