当前位置:网站首页>Roslyn 通过 nuget 统一管理信息
Roslyn 通过 nuget 统一管理信息
2022-08-04 14:49:00 【林德熙】
在日常的开发中,如果需要发布多个库,多个库之间的版权和作者等信息都是相同的。如果需要每次更改信息都打开项目进行编辑,这个效率是很低的。本文提供一个方式,通过安装一个 nuget 包就可以自动填写信息。
最近我多发布了一些项目,但是发布一个项目需要在 nuget 添加的信息有很多,如 authors 、 owners 、 Company 、 Copyright 而本渣很容易就忘记添加了一些值。
于是我就想,如何才可以让 Roslyn 自动帮我添加一些信息,特别是 Copyright ,因为一年就需要更新时间。
我就想在一个地方更新时间,然后在其他的地方都可以通过安装 nuget 的方式自动更新或通过更新 nuget 的方式更新。
特别是对新人,我就不需要告诉他发布一个 nuget 需要填哪些东西,也不需要担心因为他写错公司,只要他去安装 nuget 就可以。
在本文开始之前需要告诉大家,通过这个方式只能用来打开新的 VisualStudio 2017 格式的,而且是直接通过项目打包的方式,对于之前的格式不是很好用。
先创建一个空白的文件夹,现在是不需要通过 VisualStudio 创建项目,当然最后还是创建一个测试的项目,通过这个测试的项目可以 知道是不是成功让项目的信息管理。
创建的新的文件夹需要包含下面的文件
├── lindexi.nuspec
│
├─ build
├─────── lindexi.props
└─────── lindexi.targets
这里的文件包含的内容很少
一个可以使用的包需要包括下面内容
- id 也就是唯一表示的字符串
- version 版本
- authors 作者
- description 描述
<?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>
<title>通过 nuget 管理信息</title>
<authors>lindexi</authors>
<projectUrl>https://lindexi.oschina.io/</projectUrl>
<description>在日常的开发中,如果需要发布多个库,多个库之间的版权和作者等信息都是相同的。如果需要每次更改信息都打开项目进行编辑,这个效率是很低的。本文提供一个方式,通过安装一个 nuget 包就可以自动填写信息</description>
</metadata>
</package>
现在右击将文件压缩为压缩包就可以做出一个 nuget 包了,只需要将 zip 后缀修改为 nupkg 就可以了。
现在使用 nuget 管理软件打开就可以看到了,通过应用商店搜索 nuget 就可以安装
或者点击下面的链接安装 https://www.microsoft.com/store/productId/9WZDNCRDMDM3
打开文件可以看到下面界面
如果可以看到这个界面就是成功创建了,当然引用 林德熙逗比
包是不可能的,但是如果是按照我上面的方法写的话是不会看到引用的。
现在需要在 build 文件夹的两个文件添加一些内容
lindexi.props
<Project>
<PropertyGroup>
<Authors>lindexi</Authors>
<Company>dotnet-campus</Company>
<Description>给安装的项目使用的</Description>
<Copyright>Copyright (c) 2018 dotnet-campus</Copyright>
<RepositoryUrl>https://lindexi.oschina.io/</RepositoryUrl>
</PropertyGroup>
</Project>
lindexi.targets
<Project>
</Project>
可以看到 targets 只是空白的文件
现在重新压缩一下,修改后缀名
注意压缩需要将文件包含在根目录,也就是不能包一个文件夹再放文件
安装本地包
做出来 nuget 需要安装在一个项目,下面先创建一个控制台的项目,在这个项目设置 nuget 安装
右击项目nuget点击设置,然后点击添加
在添加的下面写出本地打包的文件,也就是 lindexi.1.0.0.nupkg
文件所在的文件夹和随意的一个命名
记得点击更新保存,然后再选择刚才设置的文件夹
现在点击浏览就可以看到刚才的 nuget 包
安装之后右击项目打包,就可以看到创建的项目打包,而且里面的信息就是刚才设置的信息
如果需要替换某个信息,例如修改 Description 的信息,就可以通过右击修改项目文件添加 Description 的设置就替换了默认的值。
使用这个方法就可以通过安装 nuget 的方式修改信息。
边栏推荐
- F. Jinyu and its outer matrix (construction)
- 华为云 & 达达,帮有情人“一键送达”
- C# 将dll打包到程序中
- SQL语句的写法:Update、Case、 Select 一起的用法
- 基于 Next.js实现在线Excel
- This week to discuss the user experience: Daedalus Nemo to join Ambire, explore the encryption of the ocean
- 饿了么智能头盔专利获授权,进一步提升骑手安全保障
- 世间几乎所有已知蛋白质结构,都被DeepMind开源了
- [机缘参悟-60]:《兵者,诡道也》-1-开篇:“死“与“生“都是天道
- 1403. 非递增顺序的最小子序列
猜你喜欢
Sum of four squares, laser bombs
《分布式云最佳实践》分论坛,8月11日深圳见
Rust from entry to proficient 04-variables
I/O stream summary
【硬件架构的艺术】学习笔记(1)亚稳态的世界
【 HMS core 】 【 Media 】 online video editing service 】 【 material can't show, or network anomalies have been Loading state
MySQL优化学习笔记
Win10无法访问移动硬盘怎么解决
Theory 1: Deep Learning - Detailed Explanation of the LetNet Model
郑轻新生校赛和中工选拔赛题解
随机推荐
leetcode: 253. How many meeting rooms are required at least
Hangzhou Electric School Competition (Counter Attack Index)
How to Identify Asynchronous I/O Bottlenecks
Win10无法访问移动硬盘怎么解决
F. Jinyu and its outer matrix (construction)
《分布式云最佳实践》分论坛,8月11日深圳见
LeetCode_模拟_中等_498.对角线遍历
Makefile 语法及使用笔记
关于pnpm包管理器的版本问题
Set partition minimum difference problem (01 knapsack)
【北亚数据恢复】IBM System Storage存储lvm信息丢失数据恢复方案
[Opportunity Enlightenment-60]: "Soldiers, Stupid Ways"-1- Opening: "Death" and "Life" are the way of heaven
C语言写简单三子棋
leetcode: 212. Word Search II
【硬件架构的艺术】学习笔记(1)亚稳态的世界
在腾讯,我的试用期总结!
【问题解决】QT更新组件出现 “要继续此操作,至少需要一个有效且已启用的储存库”
华为云 & 达达,帮有情人“一键送达”
手搓一个“七夕限定”,用3D Engine 5分钟实现烟花绽放效果
Kyushu Cloud attended the Navigator Online Forum to discuss the current status, challenges and future of 5G MEC edge computing