0

我正在开发一个将 Service Fabric 用于微服务的项目。我对 ServiceFabric 很陌生,我的第一个任务是使用 ApplicationInsight 从 Service Fabric 应用程序收集遥测数据。所以我应该使用 Microsoft.ApplicationInsights.ServiceFabric.Native 包,因为它可以通过遥测捕获 SF 上下文数据。我还指的是https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-tutorial-monitoring-aspnet文档。

作为第一步,我使用默认模板创建了一个示例无状态 SF 项目并配置了 Application Insight。然后我尝试按照文档安装 Microsoft.ApplicationInsights.ServiceFabric.Native 包。但我收到以下错误:

Install-Package : NU1107: Version conflict detected for Microsoft.ServiceFabric.Diagnostics.Internal. Reference the package directly from the project to resolve this issue. 
 BasicCalculatorService -> Microsoft.ServiceFabric.Services 3.2.162 -> Microsoft.ServiceFabric.Diagnostics.Internal (= 3.2.162) 
 BasicCalculatorService -> Microsoft.ApplicationInsights.ServiceFabric.Native 2.1.1 -> Microsoft.ServiceFabric.Services.Remoting 3.0.467 -> Microsoft.ServiceFabric.Diagnostics.Internal (= 
3.0.467).
At line:1 char:1
+ Install-Package Microsoft.ApplicationInsights.ServiceFabric.Native -V ...

似乎 Microsoft.ServiceFabric.Diagnostics.Internal 未在 Microsoft.ApplicationInsights.ServiceFabric.Native 包上更新以与 SF 一起使用。

我该如何进行呢?我应该单独下载 NuGet 包并手动引用程序集吗?

4

1 回答 1

1

在文档中,有一个明确的注释说:

如果在安装 Application Insights 包之前未预安装,您可能需要以类似方式安装 Microsoft.ServiceFabric.Diagnistics.Internal 包

这意味着,他们知道这个问题,但会让你发现它。:)

Microsoft.ServiceFabric.Diagnistics.Internal是对 的隐式依赖 Microsoft.ServiceFabric.Services,因为两者都是隐式的并且针对不同的版本,因此您必须明确声明要为两者使用哪个。

在这种情况下,您应该Microsoft.ServiceFabric.Diagnostics.Internal 3.2.162在安装包之前添加包Microsoft.ApplicationInsights.ServiceFabric.Native

请记住,因为它们针对不同的版本,您可能会在运行时遇到问题,理想的情况是两者都在同一个版本上。

于 2018-08-02T08:28:19.820 回答