从Visual Studio解决方案创建多个Nuget包

时间:2017-05-06 10:00:05

标签: nuget teamcity nuget-spec

我有一个包含多个项目的Visual Studio 2015解决方案。其中一些项目相互引用。实施例

Solution
   Project A
   Project B - references Project A

在teamcity上,我想为每个项目创建nuget包,这样当Nuget从Project B生成一个包时,我希望它知道Project A有一个Nuget包并且引用Nuget包而不是必须使用-IncludeReferencedProjects标志。

这可能吗?如果是,怎么样?

1 个答案:

答案 0 :(得分:2)

使用VS 2017(或dotnet cli工具 - 标记为“.net core SDK”)您可以使用新的基于sdk的csproj工具构建库,这些工具具有完全相同的行为:每个项目将生成一个单独的NuGet包和项目引用将被NuGet依赖项替换。

为此,请使用.NET标准库项目模板(或命令行上的dotnet new lib) - 如果要为.NET Framework构建库,请更改<TargetFramework>的内容从csprojnetstandard1.4文件中的元素net461(只是没有使用新项目系统/工具的.NET Framework库模板?)

要构建nuget包,您可以在CI版本中使用dotnet packmsbuild /t:Pack(还有一个TeamCity插件,用于构建.net核心工具。请参阅https://blog.jetbrains.com/teamcity/2016/11/teamcity-dotnet-core/)。