【问题标题】:Visual Studio 2017 multi-line Debug environment variablesVisual Studio 2017 多行调试环境变量
【发布时间】:2017-12-22 02:00:30
【问题描述】:

是 VS 2017(甚至更早的版本),当您导航到 Debug -> <ProjectName> Properties -> Debug tab 时,您可以添加环境变量,然后您的程序可以通过 Environment.GetEnvironmentVariable("var_name") 使用。

这在为变量使用单行值时效果很好,但有字符限制。

我有一些程序依赖于在部署应用程序时在它们运行的​​系统上定义的多行变量,例如:

string rsaPrivateKey = Environment.GetEnvironmentVariable("PRIVATE_KEY");

但是,这是一个 RSA 私钥,并且是多行的。我希望能够在我的工作站上调试应用程序,并在我的 VS 2017 中声明这些环境变量,而不是硬编码,以便使用这些变量的逻辑能够真正成功。

有没有人遇到过这种情况,您能否提供一个替代方案来声明多行环境变量以用于调试目的,而不会提交到源代码?

【问题讨论】:

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


    【解决方案1】:

    用途:

    string rsaPrivateKey;
    string rsaPrivateKeyPath = Environment.GetEnvironmentVariable("PRIVATE_KEY_Path");
    using (StreamReader sr = File.OpenText(rsaPrivateKeyPath ))
    {
            rsaPrivateKey = sr.ReadToEnd();
    }
    

    【讨论】:

    • 也许我的问题被误解了。没有保存这个值的“文件”,它是一个环境变量,并且有充分的理由。当使用与此值无关的 Docker 容器以及将这些变量注入容器中的 Docker 编排平台时,它尤其适用。这允许一个 docker 镜像,它完全不知道 RSA 私钥是什么。它只知道应该通过环境变量找到它。
    • 我明白了。您是对的,您不想在所有环境中包含所有私钥。这使您的阴暗开发人员可以访问生产密钥。 ;) 除了讽刺,我看到了你的问题。我会继续考虑这个。
    猜你喜欢
    • 1970-01-01
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 2018-09-21
    • 1970-01-01
    相关资源
    最近更新 更多