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. Golang协程实现流量统计系统(3)

    进程.线程.协程 - 进程:太重 - 线程:上下文切换开销太大 - 协程:轻量级的线程,简洁的并发模式 Golang协程:goroutine Hello world package main impo ...

  2. spark MLlib 概念 4: 协同过滤(CF)

    1. 定义 协同过滤(Collaborative Filtering)有狭义和广义两种意义: 广义协同过滤:对来源不同的数据,根据他们的共同点做过滤处理. Collaborative filterin ...

  3. 可滚动UIStackView 竖向居中 / 横向右对齐

    重点: 在scroll view和stack view之间加一个UIView. 竖向居中Tutorial: https://stackoverflow.com/questions/50766400/c ...

  4. python - yeild

    带有yield的函数不仅仅只用于for循环中,而且可用于某个函数的参数,只要这个函数的参数允许迭代参数.比如array.extend函数,它的原型是array.extend(iterable). 带有 ...

  5. emqtt 系统主题

    $SYS-系统主题 EMQ 消息服务器周期性发布自身运行状态.MQTT 协议统计.客户端上下线状态到 $SYS/ 开头系统主题. $SYS 主题路径以 “$SYS/brokers/{node}/” 开 ...

  6. web开发(三) 会话机制,Cookie和Session详解

    在网上看见一篇不错的文章,写的详细. 以下内容引用那篇博文.转载于<http://www.cnblogs.com/whgk/p/6422391.html>,在此仅供学习参考之用. 一.会话 ...

  7. 问题:anaconda: command not found

    打开Terminal 1.使用命令:sudo apt install vim 安装vim文本编辑器2.使用命令:vim ~/.bashrc 修改环境变量 3.在文本最后添加命令:export PATH ...

  8. fastcgi_params 与 fastcgi.conf的区别

    参照文档: http://blog.51cto.com/noican/1766676

  9. 重新网格化(Remesh)

    原文链接 Remesh并没有一个严格的定义,简单的讲,Remesh就是从一个输入网格生成另一个网格,并且满足一定的要求.根据网格改动大小,可以分为这么几类: 保持顶点拓扑和几何信息,优化网格连接关系 ...

  10. illustrator 偏方

    视图 边角构件  - - 这个是显示边角弧度的