首页 > 解决方案 > 你如何测试一个nuget包?

问题描述

我正在制作一个 nuget 包(一些 c# dll,然后构建到一个 nuget 包中,然后上传到我们的 nuget 服务器)

在我费心将它上传到服务器之前,我想有一种方法来测试它。

我有一个安装了软件包的测试项目

有没有办法(在命令行等中)从项目中卸载发布包,并从本地机器安装候选包?(测试新的包构建是否真的很好?)。

也可以一键更新和恢复这个候选包,所以如果我对正在打包的代码进行代码更改,我可以一键“构建 -> 包候选包 -> 恢复测试项目上的候选包”。

简而言之:我更改了包中的代码。单击一个按钮,然后只需在测试项目中按 F5 即可运行最新的代码更改。

标签: visual-studiopowershellcommand-linenuget

解决方案


AFAK,要实现这一点,您必须修改PackageVersion节点以使此类 nuget 包每次都是唯一的。

假设你的 lib 项目和 main 项目都是 new-sdk 项目。

1)在类库项目的csproj下添加这样的节点,并使其PackageVersion唯一。另请检查此链接

 <PropertyGroup>
    <PackageVersion>1.0.0-re-$([System.DateTime]::Now.ToString('yyyyMMddHHmm'))</PackageVersion>
  </PropertyGroup>

2)将主项目的 csproj 文件更改为:

<ItemGroup>
    <PackageReference Include="Lib" Version="1.0.0-*" />
  </ItemGroup>

它将使用 nuget 包源下的最新版本的 nuget。

3)如果你修改了lib项目然后完成,请右键单击lib项目属性-->打包生成新版本。

4)然后先构建主项目,然后你可以在主项目上使用最新更改的nuget包的代码。

在此处输入图像描述

如果你想恢复使用以前版本的 nuget 包,没有办法,你只需要在Nuget 包管理下手动安装那个版本。


推荐阅读