代码之家  ›  专栏  ›  技术社区  ›  Tobi

在Visual Studio中调试时,如何设置特定的环境变量?

  •  94
  • Tobi  · 技术社区  · 17 年前

    在类库项目上,我将项目属性的“调试”选项卡上的“启动操作”设置为“启动外部程序”( NUnit 在这种情况下)。我想在启动此程序的环境中设置一个环境变量。我该怎么做?(有可能吗?)

    编辑:

    这是一个影响所有人的环境变量。NET应用程序(COMplus_Version,它设置运行时版本),因此在系统范围内设置它真的不是一个选项。

    作为一种解决方法,我只是强制NUnit从正确的地方开始。NET版本(2.0) nunit.exe.config 尽管不幸的是,这也意味着我的一切。NET 1.1单元测试现在也在中运行。NET 2.0。我可能应该复制一个可执行文件,这样它就可以有自己的配置文件了。..

    (我对这个问题持开放态度(不接受答案),以防有人碰巧发现了答案(毕竟这对其他目的也可能有用……)

    13 回复  |  直到 14 年前
        1
  •  87
  •   Colonel Panic    8 年前

    至少在VisualStudio2008和VisualStudio2005中,您可以在项目设置中指定对环境变量的更改。

    打开你的项目。转到项目->属性。..在配置属性下->调试时,编辑“环境”值以设置环境变量。

    例如,如果要在调试应用程序时将目录“c:\foo\bin”添加到路径中,请将“环境”值设置为“path=%path%;c:\foo\ban”。

    Here's a screenshot of the settings dialog

        2
  •  11
  •   CRUZ    9 年前

    在Visual Studio 2019中右键单击您的项目,选择 Properties 。在项目属性窗口中,选择 Debug 选项卡。然后,在 Environment variables 改变环境的价值 Development Production 或其他环境。为了。Net Core和。Net 5属性被称为 ASPNETCORE_ENVIRONMENT .

    enter image description here

        3
  •  8
  •   Mariusz Jamro    9 年前

    在Visual Studio for Mac和C#中,您可以使用:

    Environment.SetEnvironmentVariable("<Variable_name>", "<Value>");
    

    但您需要以下命名空间

    using System.Collections;
    

    您可以通过以下方式查看变量的完整列表:

    foreach (DictionaryEntry de in Environment.GetEnvironmentVariables())
    {
        Console.WriteLine("  {0} = {1}", de.Key, de.Value);
    }
    
        4
  •  1
  •   tmaj    14 年前

    Visual Studio 2003似乎不允许您设置调试环境变量。

    我在C/C++中所做的就是使用 _putenv() 在……里面 main() 并设置任何变量。通常我会用一个 #if defined DEBUG_MODE / #endif 以确保只有某些版本有它。

    _putenv("MYANSWER=42");
    

    我相信你可以使用os.putenv()对C#做同样的事情,即。

    os.putenv('MYANSWER', '42');
    

    这些将仅为该shell进程设置环境变量,因此这是一个短暂的设置,这正是您所要寻找的。

    顺便说一句,使用进程浏览器很好( http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx ),这是一个sysinternals工具。您可以看到给定流程的环境变量副本是什么,这样您就可以验证您设置的是您得到的。

        5
  •  1
  •   Wouter Vanherck    5 年前

    在VS 2022中。NET 5和6可以在项目的属性下设置环境变量->调试->在“常规”下,单击“打开调试启动配置文件UI”,然后向下滚动到“环境变量”

    enter image description here

        6
  •  0
  •   Mark    17 年前

    从NUnit 2.5开始,您可以使用/framework开关,例如:

    nunit-console myassembly.dll /framework:net-1.1
    

    这是从 NUnit's help pages .

        7
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    14 年前

    如果您正在使用VS 2019,请转到项目->;属性->调试。 check here

    为变量添加键和值。然后就完成了。检查properties文件夹中的launchSettings.json,您应该会在那里看到您的变量。

        8
  •  0
  •   Peter Mortensen Pieter Jan Bonestroo    14 年前

    设置一个可以调用的批处理文件。将批处理文件的路径传递给它,让批处理文件设置环境变量,然后调用NUnit。

        9
  •  0
  •   Tejas Katakdhond    6 年前

    由于环境是从父进程继承的,您可以为Visual Studio编写一个外接程序,在执行启动之前修改其环境变量。我不确定把它放在你的过程中有多容易。