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

时间:2015-11-27 12:15:38

标签: c# visual-studio-2015 nuget nuget-package

我有一个单项目(Project.csproj)的C#解决方案,它有3种不同的构建配置,每种配置都有不同的构建指令(v1,v2,v3)。库中的代码根据这些指令而改变,因此在构建之后可以获得3个不同的DLL。原因是这个库是用C编写的第三方程序DLL的包装器。这个程序有3个版本,但有些不同。

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

谢谢

1 个答案:

答案 0 :(得分:1)

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

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

然而,您需要创建一次nuget包。

在自动化软件包时,您可以看到如何here

由于你有3个不同的版本,你可以调用" nuget包创建"单独并相应地调整要求。

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

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