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

时间:2008-09-19 08:45:39

标签: visual-studio debugging environment-variables

在类库项目中,我将项目属性的Debug选项卡上的“Start Action”设置为“Start external program”(在这种情况下为NUnit)。我想在这个程序启动的环境中设置一个环境变量。我该怎么做? (它甚至可能吗?)

编辑:

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

作为一种解决方法,我只是强迫NUnit在nunit.exe.config中设置正确的.NET版本(2.0),但不幸的是,这也意味着我的所有.NET 1.1单元测试现在也在.NET 2.0中运行。我应该只是制作可执行文件的副本,以便它可以拥有自己的配置文件......

(我保持问题公开(不接受答案)万一有人确实发现了如何(毕竟它可能对其他目的有用......)。

9 个答案:

答案 0 :(得分:68)

至少在Visual Studio 2008和Visual Studio 2005中,您可以在项目设置中指定环境变量的更改。

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

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

Here's a screenshot of the settings dialog

答案 1 :(得分:6)

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

我在C / C ++中做的是在_putenv()中使用main()并设置任何变量。通常我会用#if defined DEBUG_MODE / #endif围绕它,以确保只有某些版本才能使用它。

_putenv("MYANSWER=42");

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

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

这些只会为该shell进程设置envrironment变量,因此是一个短暂的设置,这正是您所寻找的。

顺便说一句,它是一个很好用的进程资源管理器(http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx),它是一个sysinternals工具。您可以看到给定进程的环境变量副本是什么,因此您可以验证您设置的内容是您所拥有的。

答案 2 :(得分:6)

在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);

答案 3 :(得分:1)

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

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

这是NUnit's help pages

答案 4 :(得分:0)

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

答案 5 :(得分:0)

如果您无法使用bat文件来设置环境,那么您唯一可能的选择是设置系统范围的环境变量。您可以通过

找到这些
  1. 右键点击“我的电脑”
  2. 选择属性
  3. 选择“高级”标签
  4. 点击“环境变量”按钮
  5. 在“系统变量”部分中,添加所需的新环境变量
  6. “确定”一直接受您的更改
  7. 我不知道你是否需要重启visual studio,但似乎不太可能。 HTH

答案 6 :(得分:0)

当环境从父进程继承时,您可以编写Visual Studio的加载项,在执行启动之前修改其环境变量。我不确定加入你的过程会有多容易。

答案 7 :(得分:0)

您可以在“属性”>“配置属性”>“调试”>“环境”中进行设置 enter image description here

答案 8 :(得分:0)

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

enter image description here