测试篇 创建nuget包

创建方式一:nuget.exe

这种方式可以合并多个不同工程的dll到包内

1.下载nuget.exe程序

nuget.exe地址 可以放在任意目录.

2.设置path系统变量

将nuget.exe的目录添加到path变量里.

系统为win10为例,我的电脑-右键-属性-高级系统设置-系统变量-选择path-编辑-将nuget.exe所在目录添加到path变量里.

img (右键桌面的计算机)

img

img

img

3.采用基于约定的工作目录的方式创建包

  • 创建一个nuget的文件夹
  • 里面继续创建个要打包的dll文件夹,比如叫Acad2008nuget
  • 然后在Acad2008nuget的目录下面创建nuget包最小的约定的目录,即建立一个lib目录,lib目录里建立要支持的net版本的目录,比如支持net3.5,就创建net35
    现在的cad2008里的目录结构: \Acad2008nuget\lib\net35\
  • 将要打包的dll文件全部拷贝到net35目录里
  • 在cad2008目录下打开cmd或者powershell,
    然后运行命令:nuget spec ,会生成一个Package.nuspec文件.
  • 修改Package.nuspec文件的内容
1 <?xml version="1.0" encoding="utf-8"?>
2 <package>
3   <metadata>
4    <id>JJBox.Acad2008</id> 
5    <version>1.0.0</version>
6    <title>Acad.Net API</title>
7    <authors>惊惊</authors>
8    <owners>惊惊</owners>
9    <requireLicenseAcceptance>false</requireLicenseAcceptance>
10    <description>Acad.Net API</description>
11    <summary>它用于Acad开发,内含com的dll,版本见包名</summary>
12    <releaseNotes>The first release.</releaseNotes>
13    <tags>Acad</tags>
14  </metadata>
15 </package>
  • 第4行为要创建的包的名字,微软通过它控制上传者和包关联,其他人不给更新此包
  • 第5行为版本号,建议采用x.x.x.x这种格式
  • 第6行为标题名
  • 第7行为作者
  • 第8行为dll的所有者
  • 第9行为是否要用户同意许可协议
  • 第10行为包描述
  • 第11行包摘要
  • 第12行发行说明
  • 第13行为搜索关键词
  • 修改完Package.nuspec文件的内容后保存,并在Acad2008nuget目录里运行
    nuget pack .\Package.nuspec
    生成nuget包.

4.图文教程

img

img

img

img

回到这个文件夹..........

img

img

img

创建方式二:使用csproj创建

这种方式可以将本工程输出为包

csproj

我们来看看IFox工程的csproj

<Project Sdk="Microsoft.NET.Sdk">  必须是这个.sdk
    <PropertyGroup>
        <TargetFrameworks>net35;net40</TargetFrameworks>
        <GenerateAppxPackageOnBuild>true</GenerateAppxPackageOnBuild>
        <Version>0.1.3</Version>
        <Company>InspireFunction</Company>
        <Authors>xsfhlzh;vicwjb</Authors>
        <Description>基于.NET的Cad二次开发类库</Description>
        <Copyright>InspireFunction</Copyright>
        <PackageProjectUrl>https://gitee.com/inspirefunction/ifoxcad</PackageProjectUrl>
        <RepositoryUrl>https://gitee.com/inspirefunction/ifoxcad.git</RepositoryUrl>
        <RepositoryType>git</RepositoryType>
        <PackageTags>IFoxCAD;CAD;AutoCad;C#;NET</PackageTags>
        <PackageReleaseNotes>Optimize and add multiple functions.</PackageReleaseNotes>
        <EnableNETAnalyzers>true</EnableNETAnalyzers>
        <EnforceCodeStyleInBuild>true</EnforceCodeStyleInBuild>
        <LangVersion>preview</LangVersion>
        <GeneratePackageOnBuild>true</GeneratePackageOnBuild>
        <PackageLicenseFile>LICENSE</PackageLicenseFile>
        <PackageRequireLicenseAcceptance>true</PackageRequireLicenseAcceptance>
    </PropertyGroup>
    不同的net版本在此区分,将包生成到不同的文件夹上
    <ItemGroup Condition="'$(TargetFramework)' == 'NET35'">
        <PackageReference Include="Autocad.NetApi" Version="17.2.0">
            <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
    </ItemGroup>
    <ItemGroup Condition="'$(TargetFramework)' == 'NET40'">
        <PackageReference Include="Autocad.NetApi" Version="19.0.0">
            <ExcludeAssets>runtime</ExcludeAssets>
        </PackageReference>
        <PackageReference Include="System.ValueTuple" Version="4.5.0" />
    </ItemGroup>
</Project>

生成效果

统一管理

这样就创建完nuget包了.

然后把这个包拷贝到一个专门存放的路径上.

再去vs屎丢丢的nuget管理器的"设置"上面填写一下包源目录,填一下路径,vs就能找到本机的nuget包了..

img

img

上传

如果是公司的话,就有一个服务器路径来统一管理.

这个方面另见官方文档: https://docs.microsoft.com/en-us/nuget/what-is-nuget

也可以上传到微软的服务器,但是上传了就很难删除了(管他呢)

上传到 https://www.nuget.org/packages/manage/upload

注册一个微软账号就好了,win10的用户应该都有,然后用户占据包id来控制版本迭代的.

上传到微软之后你就不需要设置一个专门的包位置了,它会自动下载到你的电脑.

(完)

posted @ 2020-11-14 15:08  惊惊  阅读(517)  评论(0编辑  收藏  举报