制作nuget包

前言

Alt text

nuget挺难用的

本文环境:

  • Win11
  • Visual Studio 2019
  • c++

本人水平有限,本文以 VTK 源码打包为例,仅自用

如有更好的方法欢迎留言,持续更新


具体操作

  • 安装 CoAppNuget Package Explorer
  • cmake 配置 vtk 的Visual Studio工程
  • build ALL_BUILD
  • build INSTALL,默认输出到 C:\Program Files (x86)\VTK
  • 进入 INSTALL 的输出目录,如 C:\Program Files (x86)\VTK
  • 创建以下 xxx.autopkg
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    nuget 
    {
    nuspec
    {
    id = VTK;
    version : 9.1.0;
    title: VTK;
    releaseNotes: "Release of VTK 9.1.0 libraries.";
    copyright: Copyright 2023;
    tags: { VTK, native, C++ };
    }

    files
    {
    include: { .\include\**\* };

    [x64,debug] {
    lib: { .\lib\*d.lib };
    bin: { .\bin\*d.* };
    }

    [x64,release] {
    lib: { .\lib\*1.lib };
    bin: { .\bin\*1.dll };
    }
    }
    }
  • 若为首次操作,则先以管理员身份运行powershell,执行命令get-executionpolicy,如果输出为Restricted,则再次执行命令`set-executionpolicy remotesigned``
  • 在终端运行 write-nugetpackage xxx.autopkg
  • 执行完毕后,该目录会新增这三个文件,我们只需要前两个,分别将其解压,进入目录,并只保留build文件夹,再将.nupkg压缩包放进目录
    1
    2
    3
    [id].[version].nupkg
    [id].redist.[version].nupkg
    [id].symbols.[version].nupkg
  • 最终你的两个文件夹目录如下,可直接作为nuget包使用
    1
    2
    3
    4
    5
    6
    7
    8
    - [id].redist.[version]/
    - build/
    - [id].[version].nupkg


    - [id].symbols.[version]
    - build/
    - [id].redist.[version].nupkg