我有一个包含多个项目的Visual Studio 2015解决方案。其中一些项目相互引用。实施例
Solution
Project A
Project B - references Project A
在teamcity上,我想为每个项目创建nuget包,这样当Nuget从Project B生成一个包时,我希望它知道Project A有一个Nuget包并且引用Nuget包而不是必须使用-IncludeReferencedProjects标志。
这可能吗?如果是,怎么样?
答案 0 :(得分:2)
使用VS 2017(或dotnet
cli工具 - 标记为“.net core SDK”)您可以使用新的基于sdk的csproj工具构建库,这些工具具有完全相同的行为:每个项目将生成一个单独的NuGet包和项目引用将被NuGet依赖项替换。
为此,请使用.NET标准库项目模板(或命令行上的dotnet new lib
) - 如果要为.NET Framework构建库,请更改<TargetFramework>
的内容从csproj
到netstandard1.4
文件中的元素net461
(只是没有使用新项目系统/工具的.NET Framework库模板?)
要构建nuget包,您可以在CI版本中使用dotnet pack
或msbuild /t:Pack
(还有一个TeamCity插件,用于构建.net核心工具。请参阅https://blog.jetbrains.com/teamcity/2016/11/teamcity-dotnet-core/)。