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

Create a NuGet package from a single C# project with 3 different build configurations

我有一个包含单个项目 (Project.csproj) 的 C# 解决方案,它有 3 种不同的构建配置,每种配置都有不同的构建指令(v1、v2、v3)。库中的代码会根据这些指令发生变化,因此您在构建后会得到 3 个不同的 DLL。这样做的原因是这个库是用 C 编写的第 3 方程序 DLL 的包装器。这个程序有 3 个版本,但有一些不同。

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

谢谢

你只能在底层框架是different.But时执行不同的代码,我不认为是这种情况。

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

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

关于自动化包,你可以看到一个 howto here

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

结论:我会选择 3 个在发布时构建的软件包。该版本在您的程序集版本中定义。您可以调用 Powershell 代码在您的 nuget 规范中对此进行调整(例如,发布时始终使用正确的版本代码,..)

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