visual-studio - 你如何测试一个nuget包?
问题描述
我正在制作一个 nuget 包(一些 c# dll,然后构建到一个 nuget 包中,然后上传到我们的 nuget 服务器)
在我费心将它上传到服务器之前,我想有一种方法来测试它。
我有一个安装了软件包的测试项目
有没有办法(在命令行等中)从项目中卸载发布包,并从本地机器安装候选包?(测试新的包构建是否真的很好?)。
也可以一键更新和恢复这个候选包,所以如果我对正在打包的代码进行代码更改,我可以一键“构建 -> 包候选包 -> 恢复测试项目上的候选包”。
简而言之:我更改了包中的代码。单击一个按钮,然后只需在测试项目中按 F5 即可运行最新的代码更改。
解决方案
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 包管理下手动安装那个版本。
推荐阅读
- java - 在不冻结应用程序的情况下更新 TextView
- java - 如何解决java文件无法识别其xml文件
- virtualbox - 如何从 Yocto 生成多引导 Grub EFI WIC 映像
- java - 在不同类中使用递归调用进行线程化
- tensorflow - pickle.load 无法在我的本地机器上打开(Stylegan2 网络)pickle 模型,但可以在云端打开
- swift - 为什么我的代码可以在 Playgrounds 上运行,但不能在 CoderPad 上运行?
- sympy - SymPy中索引变量的奇怪打印
- android - xamarin.forms,与 libvlcsharp 集成
- excel - 填写表格中某一列的空白单元格
- javascript - lodash 比较数组中的对象并基于此比较创建一个新对象