从一个具有3种不同构建配置的C#项目创建一个NuGet包

本文关键字:一个 项目 NuGet 配置 创建 3种 同构 构建 | 更新日期: 2023-09-27 18:24:40

我有一个带有单个项目(project.csproj)的C#解决方案,该解决方案有3个不同的构建配置,每个配置都有不同的构建指令(v1、v2、v3)。库中的代码会根据这些指令进行更改,因此在构建后会得到3个不同的DLL。原因是这个库是用C编写的第三方程序DLL的包装器。这个程序有三个版本,但有一些不同。

问题是,如何为此创建Nuget包?我应该创建3个不同的包,还是可以只创建一个(然后依赖的项目只需要使用一些指令来选择正确的包)?我必须使用专门定制的nuspec文件吗?或者可以用"nuget-packProject1.csproj…some params"来简化它(这样我就不必手动填写版本、依赖项等)?

感谢

从一个具有3种不同构建配置的C#项目创建一个NuGet包

只有当底层框架不同时,才能执行不同的代码。但我不认为是这样。

如果我找到你,我会创建3个nuget包模板,并自动化构建和发布过程,这样你就不必做所有的工作。

但是,您需要创建一次nuget包。

关于包的自动化,你可以在这里看到一个操作方法:

由于您有3个不同的构建,您可以单独调用"nuget包创建",并相应地调整需求。

结论:我会选择3个在发布时构建的包。该版本是在程序集版本中定义的。你可以调用Powershell代码来调整你的nuget规范(例如,发布时总是正确的版本代码,..)

如果您正在测试该软件包,请使用-beta标签发布该软件包。所以nuget会知道这是一个预发布版本。