2017-05-06 125 views
0

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

Solution 
    Project A 
    Project B - references Project A 

在TeamCity的,我要为每个这些项目创建的NuGet包,使得当的NuGet正在生成从项目B的软件包,我希望它是意识到,项目A具有NuGet包和参考该Nuget包而不必使用-IncludeReferencedProjects标志。

这可能吗?如果是,如何?

回答

1

使用VS 2017年(或dotnet CLI工具 - 标有“.NET SDK核心”),您可以使用具有正是行为的新的基于SDK-的csproj加工建库:每个项目都将产生一个独立的NuGet包和项目引用将被替换为NuGet依赖关系。

要做到这一点,使用(在命令行或dotnet new lib)的.NET标准库项目模板 - 如果你想建立自己的图书馆为.NET Framework,从netstandard1.4csproj文件改变<TargetFramework>元素的内容例如net461(这里只是没有一个.NET框架库模板(使用新的项目系统/工具)?)。

要构建的NuGet包,那么你在你的CI构建使用dotnet packmsbuild /t:Pack(有一个TeamCity的插件使用.NET的核心工具,以及构建。见https://blog.jetbrains.com/teamcity/2016/11/teamcity-dotnet-core/)。

+0

嗨马丁,谢谢......我忘记提及我正在使用VS 2015 –

+0

好吧..如果你想将它作为一个简单的功能,那就是升级的原因。 Nuget <4/vs2015解决方案需要手工编辑nuspec文件或编写脚本来生成这些文件,这是很难设置和维护的。 –

相关问题