在Visual Studio 2010 C#项目中设置调试/运行环境变量?

16

我在Visual Studio 2010中有一个C#项目,希望在运行/调试应用程序时使用特定的环境变量。

这似乎是一个存在于某处的功能,但尽管进行了广泛搜索,我仍然找不到它。 这个问题与2008年及以下版本相关,并没有包含可以帮助我的答案。 这个问题与构建过程相关,而不是调试/运行操作。

我知道有一个解决方法是在IDE中启动时设置环境变量,但我更想从IDE中控制这一点。这可行吗?


如果我理解正确:您想在IDE中管理一个环境变量,并在运行时将其传递给您的应用程序? - michele
@michele 我想开始一个调试会话并指定一个环境变量,以便我的应用程序可以使用。在 Eclipse 中,这可以通过使用“运行配置”轻松实现。 - Duncan Jones
你尝试过使用配置文件吗? - michele
3个回答

12

虽然不如从正在调试的应用程序之外进行设置那样简洁,但您可以像这样添加到Main中(注意:我是VB程序员):

#if (DEBUG)
    Environment.SetEnvironmentVariable("YourVar", "YourVal");
#endif

4

这在C++ IDE中是可行的,但在C# IDE中不行。我猜它被有意省略了,因为C#有更好的配置程序的方式。环境变量很麻烦,因为它们需要一个安装程序,在部署应用程序时会操作用户系统环境。这很容易出错,并且经常会出错。

C#的方法是使用应用程序设置。项目+属性,设置选项卡。

一个可能的替代方案是使用命令行参数。您将在Main()方法中获得它,您可以在Project + Properties,Debug选项卡中指定值。

您仍然可以使用一种技巧来获取所需的结果,这需要使用C ++ IDE启动程序:

  • 向解决方案添加一个新项目,并选择Visual C ++,General,Makefile项目模板。
  • 立即单击完成,向导会询问太多问题。
  • 右键单击已添加的项目,选择属性,选择NMake节点。
  • 编辑“生成命令行”设置,并将其设置为“echo Done”。
  • 编辑“输出”设置,将其设置为C#可执行文件的完整路径。
  • 选择调试节点,将调试器类型更改为仅托管代码。
  • 然后您会看到下面的那个,也就是您想要的,编辑“环境”设置。
  • 再次右键单击项目,选择“设为启动项目”。

5
使用环境变量并不一定需要安装程序修改用户的系统环境。环境变量是针对进程范围的,通常从系统继承,但并非总是如此。这就是为什么 ProcessStartInfo.EnvironmentVariables 存在的原因。在多进程应用程序中,当无法修改或利用命令行参数 API 时,它们是提供启动配置的另一种选择。我认为,在 C# 调试器中省略此设置是一个错误。 - nicholas
1
另一个有用的情况是,当您正在开发一个将由第三方托管并通过环境变量向您的程序传递信息的应用程序时。环境变量仍然存在,并且它们有许多用途。无疑,省略它们是一个错误。 - John Hargrove

2

对于在Visual Studio 2013下使用环境变量进行C#调试,我的做法是在Visual Studio的开始菜单中打开“VS2013开发人员命令提示符”。从命令提示符中设置所需的环境变量,然后运行“devenv.exe”启动Studio。接下来打开一个解决方案并开始调试。

请记住,如果您想更改环境变量,您需要停止调试,退出Visual Studio,然后在打开的命令提示符中调整变量,然后重新开始。请记住,环境作为进程(CMD.EXE)向前移动,启动下一个(DEVENV.EXE),然后启动下一个(YourApp)。最初的更改不会向前传递,您需要重新开始这个链条。


我发现这对我来说是一个比被接受的答案更简单和更有效的解决方案。 - Eric Pohl

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接