在Visual Studio中debugging时如何设置特定的环境variables?
在类库项目中,我将项目属性的“debugging”选项卡上的“启动操作”设置为“启动外部程序”(在本例中为NUnit )。 我想在这个程序启动的环境中设置一个环境variables。我该怎么做? (这甚至有可能吗?)
编辑:
这是一个影响所有.NET应用程序(COMplus_Version,它设置运行时版本)的环境variables,所以将它设置为系统范围真的不是一个选项。
作为一个解决方法,我只是强迫NUnit在.NET版本(2.0)中nunit.exe.config
,通过在nunit.exe.config
设置它,但不幸的是这也意味着我所有的.NET 1.1unit testing现在也运行在.NET 2.0中。 我应该只是做一个可执行文件的副本,以便它可以有自己的configuration文件…
(我保持这个问题是开放的(不接受答案),以防有人发现如何(毕竟这可能对其他目的有用))
至less在Visual Studio 2008和Visual Studio 2005中,您可以在项目设置中指定对环境variables的更改。
打开你的项目。 转到项目 – >属性…在configuration属性 – >debugging,编辑'环境'值来设置环境variables。
例如,如果要在debugging应用程序时将path“c:\ foo \ bin”添加到path中,请将“环境”值设置为“PATH =%PATH%; c:\ foo \ bin”。
以下是设置对话框的屏幕截图:
Visual Studio 2003似乎不允许您设置用于debugging的环境variables。
我在C / C ++中做的是在main()
使用_putenv()
main()
并设置任何variables。 通常我用#if defined DEBUG_MODE / #endif
来包围它,以确保只有特定的版本有它。
_putenv("MYANSWER=42");
我相信你可以用C#使用os.putenv()做同样的事情,即
os.putenv('MYANSWER', '42');
这些将只为shell进程设置envrironmentvariables,因此这是一个短暂的设置,这正是你正在寻找的。
顺便说一句,它是一个sysinternals工具使用进程资源pipe理器( http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx )很好。 你可以看到给定进程的环境variables副本是什么,所以你可以validation你设置的是什么。
如果您不能使用bat文件来设置您的环境,那么您唯一可能的select是设置一个系统范围的环境variables。 你可以通过这样做来find这些
- 右键单击“我的电脑”
- select属性
- select“高级”选项卡
- 点击“环境variables”button
- 在“系统variables”部分中,添加您所需的新环境variables
- “确定”完成接受您的更改
我不知道你是否必须重新启动visual studio,但似乎不太可能。 HTH
从NUnit 2.5开始,你可以使用/ framework开关,例如:
nunit-console myassembly.dll /framework:net-1.1
这是来自NUnit的帮助页面 。
设置一个可以调用的batch file。 传递batch file的path,并让batch file设置环境variables,然后调用NUnit。
由于环境是从父进程inheritance的,因此可以在执行启动之前为Visual Studio编写一个加载项,用于修改其环境variables。 我不确定在你的过程中有多容易。
在Visual Studio for Mac和C#中,您可以使用:
Environment.SetEnvironmentVariable("<Variable_name>", "<Value>");
但是你将需要下面的命名空间
using System.Collections;
你可以用这个检查variables的完整列表:
foreach (DictionaryEntry de in Environment.GetEnvironmentVariables()) Console.WriteLine(" {0} = {1}", de.Key, de.Value);
- JavaScript:有没有办法让Chrome浏览器打破所有的错误?
- 如何在debugging时查看DataTable
- 在Visual Studiodebugging器中查看数组?
- 如何在Visual Studio中find堆栈跟踪?
- Java有像C#那样的“debugging”和“发布”构build模式吗?
- 将variables传递给函数时如何使用python timeit?
- 在Erlang中使用trace和dbg
- UnsatisfiedLinkError:dlopen失败:无法在API <20上find由“libsupportjni.so”引用的符号“strtof”
- 在IntelliJ IDEA中debuggingJSP