在 nuget 恢复包中构建 C# 项目失败 Microsoft.ApplicationInsights

Build a C# project fails in nuget restore package Microsoft.ApplicationInsights

我有这个Azure Notification Hubs Sample

它失败了,因为

The 'Microsoft.ApplicationInsights 0.12.0-build17386' package requires NuGet client version '2.8.50313' or above, but the current NuGet version is '2.8.1.0'. The command "eval nuget restore src/NotificationHubSample.sln" failed. Retrying, 2 of 3.

为什么?

Microsoft.ApplicationInsights NuGet 包有问题。在其 .nuspec 文件中,它具有以下内容:

<metadata minClientVersion="2.8.50313">

NuGet 将根据其产品版本检查 NuGet 包定义的 minClientVersion 以查看它们是否兼容。

Microsoft.ApplicationInsights NuGet 包中使用的 minClientVersion 似乎使用的是 NuGet 程序集文件版本,而不是 NuGet 产品版本。因此 NuGet 恢复或安装将始终失败,至少在发布更新版本的 NuGet 之前是这样。最新发布的NuGet产品版本为2.8.3.

请注意,我忽略了当前有 CTP 版本的 NuGet 3.0。所以这个 NuGet 包可以与 NuGet 3.0 一起使用,所以也许 Microsoft.ApplicationInsights NuGet 包的创建者只用那个版本测试过它。

所以你的选择是:

  1. 向 Microsoft.ApplicationInsights NuGet 包的所有者报告问题并等待他们修复它。
  2. 使用 NuGet.exe 3.0 运行 使用 Travis 恢复包。
  3. 使用没有此 minClientVersion 限制的 Microsoft.ApplicationInsights NuGet 包的不同版本。