C#.NET核心控制台程序 - 如何在Visual Studio外部使用GetEnvironmentVariable

时间:2017-11-06 16:30:21

标签: c# configuration .net-core

我正在编写一个.Net Core C#控制台程序。测试时,可以方便地使用项目属性中定义的环境变量:

enter image description here

我写了这样简单的代码:

string rdsDatabase = System.Environment.GetEnvironmentVariable("RDSDatabase");

我刚刚了解到没有创建.exe,你必须使用“DotNet”来运行.net核心控制台程序(https://blogs.msdn.microsoft.com/benjaminperkins/2017/03/07/net-core-application-where-is-my-exe-how-to-publish/)。在那种情况下,我在哪里将这些环境变量放在运行时?我知道有一些替代方法,如本文所述:https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration?tabs=basicconfiguration。我可以保持简单并使用GetEnvironmentVariable吗?

1 个答案:

答案 0 :(得分:5)

创建一个设置变量的cmd文件。它只会被设置为"环境变量"正在执行cmd,之后是"环境变量"已经没有了。

示例dotnet核心应用程序:

class Program
{
    static void Main(string[] args)
    {
        string myvar = System.Environment.GetEnvironmentVariable("MyEnvironmentVariable");
        Console.WriteLine(myvar);
    }
}

要调用的cmd示例(让我们假设已编译的dll被调用" Foo.dll"):

SET MyEnvironmentVariable=Hello
dotnet Foo.dll

输出应为" Hello"。

我个人会推荐一个配置文件(可以在部署时配置正确的值)。这也是(直接)查看配置的第一个地方。环境变量有点像魔法" A" run.cmd"也是很容易被忽视的东西。