Microsoft.Bcl.Build它用于什么

时间:2016-01-21 06:09:14

标签: asp.net msbuild dotnetopenauth

我刚尝试从GitHub下载并构建DotNetOpenAuth.Samples。但是nuget.targets The process cannot access the file 'xxx\tools\Microsoft.Bcl.Build.Tasks.dll' because it is being used by another process说出了错误。

所以我检查了目标文件。发现<RestoreCommand>$(NuGetCommand) install "$(PackagesConfig)" -source "$(PackageSources)" -o "$(PackagesDir)"</RestoreCommand>导致错误。

packages.config我找到<package id="Microsoft.Bcl.Build" version="1.0.8" targetFramework="net40" />已定义。

因为我发现该项目并没有真正引用dll。所以我只是评论包配置。并重建它。错误消失了。

但是我的问题是为什么在包配置中定义了包中没有引用它? (Microsoft.Bcl.Build)用于什么?

感谢。

更新

忘记添加来自nuget的信息。

  

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

     

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

还是不能理解它..

1 个答案:

答案 0 :(得分:2)

简而言之,它是NuGet包的辅助层。 Microsoft.Bcl.Build 1.0的announcement提供了详细信息:

  

新版本的Microsoft.Bcl.Build将确保解决方案   包含我们的包将成功加载,即使包不包含   恢复了。这会影响依赖它的所有.NET NuGet包,   例如Microsoft.Net.Http,Microsoft.Bcl和Microsoft.Bcl.Async。

     

Microsoft.Bcl.Build将在以下情况下提供可操作的错误消息   要求你重新构建包,因此丢失了包。

     

与NuGet 2.7配合使用时自动执行包恢复   Visual Studio并没有通过MSBuild实现,经验是   透明而光滑。但是,这不涉及构建服务器   方案,所以你仍然需要运行nuget.exe恢复solution.sln   在构建之前,或者如果愿意,可以签入.targets文件。