Visual Studio 2022 System.Environment.GetEnvironmentVariable 不起作用

Posted

技术标签:

【中文标题】Visual Studio 2022 System.Environment.GetEnvironmentVariable 不起作用【英文标题】:Visual Studio 2022 System.Environment.GetEnvironmentVariable not working 【发布时间】:2021-09-15 23:35:25 【问题描述】:

我知道这仍处于预览阶段,但我只是想确保我没有做错任何事情,因为我过去曾做过类似的事情。我在属性中设置了环境变量:

我正在尝试设置我的测试:

[TestInitialize]
public void Initialize()

    var test = Environment.GetEnvironmentVariables();
    // test enumerates all the Env variables, don't see it there
    var connectionString = Environment.GetEnvironmentVariable("CONNECTION_STRING");
    if (string.IsNullOrWhiteSpace(connectionString)) // so this is obviously null
        throw new ArgumentNullException("CONNECTION_STRING");
    _ConnectionString = connectionString;

从我的 cmets 可以看出,环境变量未找到/未加载。

我错过了什么?谢谢。

【问题讨论】:

您在调试或运行测试吗? 调试测试 你在哪个项目上设置了变量?测试项目?还是网络应用? 【参考方案1】:

我假设您使用的是 Visual Studio 2022,因为您使用的是 .NET 6 和最小主机(即没有 Startup.cs)?

一般的偏好是不要将信息存储在环境变量中,因为这些信息通常会上传到 GitHub,并且可能会被拖网搜索并用来对付你。

对于本地开发机密,首选是使用 secrets.json 文件存储这些机密。 Safe Storage of Secrets 提供有关如何执行此操作的信息,Accessing Configuration File Information 提供有关访问配置文件的详细信息。

对于 TL;DR: Crowd,以下步骤可能会有所帮助(这是我在使用 .NET 6 的 Blazor 应用程序中所做的):

    在 Visual Studio 2022 中,右键单击相关项目并选择“管理用户机密”。这将创建一个本地 secrets.json 文件并打开它。它还将在您的项目磁贴中为UserSecretsId 添加一个 GUID。 在此文件中将您的密钥创建为 JSON 键值对,就像您创建环境变量一样。 转到项目中的“连接服务”并配置Secrets.json 服务。 将“用户机密”添加到您的配置文件中;这将取决于具体发生在哪里。 将IConfiguration 注入您的控制器并将其保存到字段中。 调用您想要使用的数据:
    yourConfigurationFieldName.GetValue<string>(yourJsonKey)
    

【讨论】:

这很好,但我没有使用控制器,这是一个测试项目 - 我会研究一下,但如果你已经知道,那就太好了 - 谢谢! 这很容易在测试中设置:patrickhuber.github.io/2017/07/26/… 这没有回答原来的问题。【参考方案2】:

在 Visual Studio 2022 中,您可以通过修改 launchSettings.json 文件的以下部分来访问开发环境变量。

“环境变量”: "ASPNETCORE_ENVIRONMENT": "发展", "VaultUri": "https://xxx.vault.azure.net/", “AZURE_USERNAME”:“xxx@user.com”

其中 VaultUri 是您的环境变量的名称。

【讨论】:

以上是关于Visual Studio 2022 System.Environment.GetEnvironmentVariable 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

System.Web.Services 无法添加到 Visual Studio 中的 VB.NET 项目中

Visual Studio 错误:由于出现错误,无法启动 Visual Studio:System.NullReferenceException

visual studio2022免费吗

Visual Studio 2017 system未定义?

Visual Studio 2022下载地址

Visual Studio 2022下载地址