Application Insights csproj 文件修改的意义
Significance of Application Insights csproj file modifications
当我在 Visual Studio 的解决方案资源管理器中使用右键单击 ASP.NET 应用程序可用的 "Add Application Insights Telemetry..." 菜单选项将应用程序指向现有的 Application Insights 资源时,产生的文件更改包括向 .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 中的上下文相关菜单选项之外,它们是否用于其他用途?我需要在其他环境中担心它们吗?
这些纯粹用于 Visual Studio 工具内部。它们在 csproj 中,因此所有获得您的项目(不受源代码控制)或其他项目的用户都具有这些值。 (如果它存储在注册表或 .suo 或其他 non-source 地方,它不会 "travel" 与项目)
ApplicationInsightsResourceId
是项目的资源 id,用于在配置中显示信息 window 关于什么资源 VS 认为 你正在发送数据到。这也默认用于显示 codelens/etc 中的数据。您可以在配置 window 中覆盖它以选择不同的资源(例如,如果您在开发时将数据发送到 debug/staging 资源,但总是希望 codelens/other 工具始终显示来自产品的数据) 更改配置 window 中的资源 将设置此 属性 (并将更新 applicationinsights.config 文件中的 ikey)
ApplicationInsightsAnnotationResourceId
是 VS 将尝试提交发布 release annotations 的资源,如果您从 Visual Studio 内部发布您的 Web 应用程序。您也可以从配置 window 内部更改此资源(或完全关闭此行为)。如果您不从 VS 内部发布,此设置不会执行任何操作。
这些设置不会影响数据在运行时的实际去向,如果您在代码中设置检测密钥,您的数据仍会去那里。
当我在 Visual Studio 的解决方案资源管理器中使用右键单击 ASP.NET 应用程序可用的 "Add Application Insights Telemetry..." 菜单选项将应用程序指向现有的 Application Insights 资源时,产生的文件更改包括向 .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 中的上下文相关菜单选项之外,它们是否用于其他用途?我需要在其他环境中担心它们吗?
这些纯粹用于 Visual Studio 工具内部。它们在 csproj 中,因此所有获得您的项目(不受源代码控制)或其他项目的用户都具有这些值。 (如果它存储在注册表或 .suo 或其他 non-source 地方,它不会 "travel" 与项目)
ApplicationInsightsResourceId
是项目的资源 id,用于在配置中显示信息 window 关于什么资源 VS 认为 你正在发送数据到。这也默认用于显示 codelens/etc 中的数据。您可以在配置 window 中覆盖它以选择不同的资源(例如,如果您在开发时将数据发送到 debug/staging 资源,但总是希望 codelens/other 工具始终显示来自产品的数据) 更改配置 window 中的资源 将设置此 属性 (并将更新 applicationinsights.config 文件中的 ikey)
ApplicationInsightsAnnotationResourceId
是 VS 将尝试提交发布 release annotations 的资源,如果您从 Visual Studio 内部发布您的 Web 应用程序。您也可以从配置 window 内部更改此资源(或完全关闭此行为)。如果您不从 VS 内部发布,此设置不会执行任何操作。
这些设置不会影响数据在运行时的实际去向,如果您在代码中设置检测密钥,您的数据仍会去那里。