【问题标题】:Visual Studio 2022 System.Environment.GetEnvironmentVariable not workingVisual Studio 2022 System.Environment.GetEnvironmentVariable 不起作用
【发布时间】: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 可以看出,环境变量未找到/未加载。

我错过了什么?谢谢。

【问题讨论】:

  • 您在调试或运行测试吗?
  • 调试测试
  • 你在哪个项目上设置了变量?测试项目?还是网络应用?

标签: c# visual-studio visual-studio-2022


【解决方案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 应用程序中所做的):

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

【讨论】:

    猜你喜欢
    • 2022-12-13
    • 2022-11-17
    • 2022-09-23
    • 2022-01-04
    • 1970-01-01
    • 2022-07-07
    • 1970-01-01
    • 2022-06-13
    • 2022-07-31
    相关资源
    最近更新 更多