如何配置 C# WinForms 应用程序以获取它部署到 Azure 上的 EnvironmentName?
How to configure C# WinForms application to get EnvironmentName that it is deployed to on Azure?
这个问题是关于:
问题
如何根据我们设置的不同订阅使 WinForms 应用程序环境感知?
上下文
关于如何跨多个订阅将 Winforms 应用程序部署到 Azure VM,我发现的文档和示例很少。例如,如果我将 Winforms 应用程序部署到标记为开发的订阅,那么它应该同时使用安全组和绑定到 Development
订阅的 SQL 服务器。冲洗并重复 UAT
和 Production
。
目前,我们有一个 WinForms 应用程序,它有多个 appsettings.<env>.json
文件用于开发、UAT 和生产。我们正在使用 SlowCheetah
根据配置管理器所说的内容转换 appsettings.json
文件。这似乎与 MsBuild
管道任务中的 buildConfiguration
参数有关。 SQL 服务器连接字符串和安全组的 appsettings 文件中有不同的环境值。
它打算通过虚拟机部署的应用程序和环境是特定于订阅的。我们如何配置每个订阅以包含相应的环境名称,然后在运行时将其传递给应用程序?我们还会使用 SlowCheetah
并通过 MsBuild
任务中的 buildConfiguration
参数设置环境,还是我们会做其他事情?
似乎我们可以走那条路或者我们可以使用环境变量路线,但我不知道如何在 Azure 中为虚拟机设置环境变量。 非常感谢 我可以寻求的任何帮助、文档或示例!
注意:对于 Web 应用程序,这似乎非常简单。只需在项目和 Azure App Service
中的配置中设置 ASPNETCORE_ENVIRONMENT
变量。
如评论中所述,如果我对你的理解正确,你想在 Azure 门户中设置环境选项,并让它们对 VM 中的程序 运行 可见。
请注意,Azure 虚拟机只是基础架构即服务 - 它们有点裸露,只在顶部提供最少的 Azure 服务,因此没有虚拟机的概念生产或登台 - 这完全取决于您自己实施。
也就是说,您可以在 Azure 门户(并通过 PowerShell)中设置一些配置值,这些值将传递给 VM:这可以使用 VM 配置区域的“用户数据”区域来完成。
请注意,这仅适用于 ARM(Azure 资源管理器)VM,不适用于“经典”VM 或“云服务”AM。
这个问题是关于:
问题 如何根据我们设置的不同订阅使 WinForms 应用程序环境感知?
上下文
关于如何跨多个订阅将 Winforms 应用程序部署到 Azure VM,我发现的文档和示例很少。例如,如果我将 Winforms 应用程序部署到标记为开发的订阅,那么它应该同时使用安全组和绑定到 Development
订阅的 SQL 服务器。冲洗并重复 UAT
和 Production
。
目前,我们有一个 WinForms 应用程序,它有多个 appsettings.<env>.json
文件用于开发、UAT 和生产。我们正在使用 SlowCheetah
根据配置管理器所说的内容转换 appsettings.json
文件。这似乎与 MsBuild
管道任务中的 buildConfiguration
参数有关。 SQL 服务器连接字符串和安全组的 appsettings 文件中有不同的环境值。
它打算通过虚拟机部署的应用程序和环境是特定于订阅的。我们如何配置每个订阅以包含相应的环境名称,然后在运行时将其传递给应用程序?我们还会使用 SlowCheetah
并通过 MsBuild
任务中的 buildConfiguration
参数设置环境,还是我们会做其他事情?
似乎我们可以走那条路或者我们可以使用环境变量路线,但我不知道如何在 Azure 中为虚拟机设置环境变量。 非常感谢 我可以寻求的任何帮助、文档或示例!
注意:对于 Web 应用程序,这似乎非常简单。只需在项目和 Azure App Service
中的配置中设置 ASPNETCORE_ENVIRONMENT
变量。
如评论中所述,如果我对你的理解正确,你想在 Azure 门户中设置环境选项,并让它们对 VM 中的程序 运行 可见。
请注意,Azure 虚拟机只是基础架构即服务 - 它们有点裸露,只在顶部提供最少的 Azure 服务,因此没有虚拟机的概念生产或登台 - 这完全取决于您自己实施。
也就是说,您可以在 Azure 门户(并通过 PowerShell)中设置一些配置值,这些值将传递给 VM:这可以使用 VM 配置区域的“用户数据”区域来完成。
请注意,这仅适用于 ARM(Azure 资源管理器)VM,不适用于“经典”VM 或“云服务”AM。