利用Visual Studio制作.NET Framework的NuGet包
0 准备
- Visual Studio 2022 Community
- nuget.exe
- NuGet Package Explorer
1 创建.NET Framework 库工程
-
打开VS,创建一个新工程。
-
选择工程模板Class Library (.NET Framework)。
-
根据实际情况修改工程信息。此处保持默认。
-
输入如下内容,注意将类和方法的注释编写完整,便于在导出的动态库中生成注释。
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace ClassLibrary1 { /// <summary> /// 导出类 /// </summary> public class Class1 { /// <summary> /// 计算两个整数的和 /// </summary> /// <param name="val1">第一个整数</param> /// <param name="val2">第二个整数</param> /// <returns>和</returns> public int Add(int val1, int val2) { return val1 + val2; } /// <summary> /// 读取默认路径的TXT文本文件 /// </summary> /// <returns>文本内容字符串</returns> public string ReadTxT() { string txtStr = ""; string filePath = System.Environment.CurrentDirectory + @"./txt/test.txt"; txtStr = File.ReadAllText(filePath); return txtStr; } } }
-
配置工程编译选项。
-
编译工程。Build->Build Solution。
-
在生成目标文件夹下创建txt文件夹,并在文件夹中创建test.txt文件,在文件中填写任意内容,以供测试。
2 为导出的库配置工程属性
-
选中工程,右键选择属性,配置Application相关属性。注意:Assembly Name必须在NuGet仓库中唯一,否则在后续提交到NuGet仓库时报错。
-
切换到Build页,勾选生成xml文件。
-
点击Assembly Information,配置NuGet包相关属性。
-
修改生成平台为Debug,并重新生成项目。
3 生成初始清单。
-
Tools->Command Line > Developer Powershell,打开Powershell终端。
-
切换到工程目录,输入如下命令。
cd .\ClassLibrary1\ nuget.exe spec .\ClassLibrary1.csproj
-
用记事本打开工程目录下刚生成的
.nuspec
文件。 -
修改模板中对应位置的内容并保存。
<?xml version="1.0" encoding="utf-8"?> <package > <metadata> <id>ClassLibrary1</id> <version>1.0.0.0</version> <title>ClassLibrary1</title> <authors>Ailee</authors> <requireLicenseAcceptance>false</requireLicenseAcceptance> <license type="expression">MIT</license> <!-- <icon>icon.png</icon> --> <!--projectUrl>http://project_url_here_or_delete_this_line/</projectUrl --> <description>导出dll并打包成NuGet测试</description> <releaseNotes>导出dll并打包成NuGet测试</releaseNotes> <copyright>Copyright@2024</copyright> <tags>test</tags> </metadata> </package>
也可新增其他附加值,参考Optional metadata elements
4 打包
-
将Powershell终端切换到工程目录,并输入如下命令进行打包。
nuget pack
-
在用
NuGet Package Explorer
打开文件C:\Users\TK\Desktop\class_lib_test\ClassLibrary1\ClassLibrary1\ClassLibrary1.1.0.0.nupkg,预览包内容。 -
选中net472,右键创建新文件夹txt。
-
选中txt文件夹,右键添加现有文件。将默认txt文本放入txt文件夹中。
-
点击File->Save,关闭窗口即可。
自此,一个NuGet包打包完毕,可根据个人需要使用NuGet Package Explorer
增删文件,或者直接使用NuGet Package Explorer
进行打包。
5 上传到私有库
参考 Ubuntu2204安装Nexus实现私有NuGet服务 的第5节
参考文献
- 【1】Quickstart: Create and publish a package using Visual Studio (.NET Framework, Windows)
- 【2】NuGetPackageExplorer
- 【3】nuget包管理:使用NuGet Package Explorer制作、发布包到nuget服务器以及从nuget服务器删除包的方法
lorer/NuGetPackageExplorer) - 【3】nuget包管理:使用NuGet Package Explorer制作、发布包到nuget服务器以及从nuget服务器删除包的方法
- 【4】C#【必备技能篇】制作NuGet程序包,并发布到NuGet官网