首页 文章

Application Insights csproj文件修改的意义

提问于
浏览
7

当我使用右键单击Visual Studio中的解决方案资源管理器中的ASP.NET应用程序以将应用程序指向现有Application Insights资源时,可以使用"Add Application Insights Telemetry..."菜单选项,生成的文件更改包括向 .csproj 文件添加两个项目:

<ApplicationInsightsResourceId>/subscriptions/$guid/resourcegroups/$rgname>/providers/microsoft.insights/components/$name</ApplicationInsightsResourceId>
<ApplicationInsightsAnnotationResourceId>/subscriptions/$guid/resourcegroups/$rgname/providers/microsoft.insights/components/$name</ApplicationInsightsAnnotationResourceId>

我已经省略了一些信息 - $guid 是Azure订阅GUID, $rgname$name 分别是为Application Insights资源组和资源指定的名称 .

  • 每个元素有什么区别?他们似乎有相同的信息 .

  • 如果我想将遥测发送到差异环境中的不同Application Insights资源,文档告诉我需要在代码中为每个环境设置检测密钥 - 这很好 - 但这些设置呢?它们是否用于驱动Visual Studio中的上下文相关菜单选项以外的任何其他内容?我是否需要在其他环境中担心它们?

1 回答

  • 11

    这些纯粹是在Visual Studio工具中使用 . 它们位于csproj中,因此所有获得项目(源代码控制)或其他任何内容的用户都拥有这些值 . (如果它存储在注册表或.suo或其他非源位置,它将不会与项目“旅行”)

    ApplicationInsightsResourceId 是项目的资源ID,用于在配置窗口中显示有关VS认为您要向其发送数据的资源的信息 . 默认情况下,这也用于在codelens / etc中显示数据 . 您可以在配置窗口中覆盖它以选择不同的资源(例如,如果您在开发时将数据发送到调试/暂存资源,但始终希望代码透镜/其他工具始终显示来自prod的数据)更改配置窗口内的资源将设置此属性(并将更新applicationinsights.config文件中的ikey)

    如果您从Visual Studio内部发布Web应用程序,则 ApplicationInsightsAnnotationResourceId 是VS将尝试提交发布release annotations的资源 . 您也可以在配置窗口内更改此资源(或完全转换此行为) . 如果你不做任何事情 .

    这些设置不会影响数据在运行时实际运行的位置 . 如果要在代码中设置检测键,则数据仍会存在 .

相关问题