Microsoft.Bcl.Build NuGet包是做什么的?

我无法find任何文档 – 从Microsoft.Bcl.Build的Nuget页面链接不提供太多的帮助:

此包提供构build基础结构组件,以便引用特定Microsoft包的项目可以成功构build。

除非您收到指示您添加引用的生成警告,否则不要直接引用此包。

从查看Microsoft.Bcl.Build.targets文件,它看起来像pipe理绑定redirect和包引用。 它看起来像只有在Visual Studio中运行时才使用此function。

任何人都可以提供有关此软件包的更多信息? 在我们的构build服务器环境中 , 这是一个痛苦,完全从源代码构build(如构build服务器环境)时可以忽略它吗?

从查看Microsoft.Bcl.Build.targets ,它有一堆项目configuration目标,例如:

  • EnsureBindingRedirects – 确定哪些引用已select绑定redirect,并使用它们更新app.config
  • BclBuildValidateNugetPackageReferences – 此目标validation安装在当前项目中的任何Nuget软件包在当前项目中还安装了它们的依赖项(传递依赖项)。

所以基于这个评估,我决定在添加/删除/更新NuGet依赖关系时,只需要在开发环境中使用此function。 而且在CI环境中它可能会被忽略,在那里造成问题。

所以我想保持依赖在我的* .csproj文件,但忽略它。 我通过在构build环境目标文件(例如builder.targets)上添加了一个条件导入来实现这一目的,其中包括这个块:

 <!-- Skip Microsoft.Bcl.Build functionality when building only from Source. --> <PropertyGroup> <BclBuildImported>Ignore</BclBuildImported> </PropertyGroup> 

这具有忽视CI环境中的目标,而是在开发环境中激活它们的净效果。 我已经运行了一个多星期了,目前没有问题…

我仍然很想知道是否有人对这个软件包有更好的了解,表明这样做是一个坏主意。 到目前为止,我认为这是一个好主意。

如果您访问http://blogs.msdn.com/b/bclteam/p/bclbuild.aspx,您将看到两条链接到http://blogs.msdn.com/b/dotnet/archive/2013/11/的公告13 / pcl-and-net-nuget-libraries-are-now-enabled-for-xamarin.aspx和http://blogs.msdn.com/b/dotnet/archive/2013/08/12/improved-package- restore.aspx应该解释它。 从我看到它基本上是一个老的包的方式,以旧的.Net来构build和编译没有问题,新的.Net