2013-06-25 58 views
14

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

这让我觉得这个功能可能存在于某处,但我无法找到它,尽管进行了大量搜索。 This question涉及2008年及以下,不包含帮助我的答案。 This question涉及构建过程,而不是调试/运行的行为。

我很欣赏解决方法是启动我的IDE环境变量,但我宁愿从IDE控制它。这可能吗?

+0

如果我明白:你想在IDE中管理一个环境变量,并在运行时传递给你的应用程序? – michele

+0

@michele我想开始一个调试会话并指定一个环境变量,这个变量将被提供给我的应用程序。在Eclipse中,使用“运行配置”可以轻松实现。 –

+0

你有没有试过使用配置文件? – michele

回答

5

这在C++ IDE中是可行的,而不是C#IDE。我猜想它被故意省略是因为C#有更好的方法来配置一个程序。环境变量很笨拙,因为它们需要一个在部署应用程序时与用户的系统环境联系起来的安装程序。这很脆弱,另一名安装人员很容易破坏,他们经常这样做。

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

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

你仍然可以得到你想要与需要使用C++ IDE开始你的程序的招什么:

  • 添加一个新的项目,以您的解决方案,并选择Visual C++,通用,Makefile的项目模板。
  • 点击“完成”,向导会问很多问题。
  • 右键单击添加的项目Properties,选择NMake节点。
  • 编辑“Build Command Line”设置,并将其设置为“echo Done”。
  • 编辑“输出”设置,将其设置为C#可执行文件的完整路径。
  • 选择调试节点,将调试器类型更改为仅管理。
  • 然后你会看到下面那个,你想要的,编辑“环境”设置。
  • 再次右键单击项目,选择“设为启动项目”。
+4

使用环境变量不一定需要安装人员修改用户的系​​统环境。环境变量的范围是每个进程,通常从系统继承,但并非总是如此。这就是为什么'ProcessStartInfo.EnvironmentVariables'存在。在多进程应用程序中,当命令行参数API无法修改或使用时,它们是为程序提供启动配置的替代方法。 IMO忽略C#调试器的这个设置是一个错误。 – nicholas

+0

这是有用的另一种情况是,当你正在开发一个应用程序,该应用程序将由通过环境变量将信息传递给你的程序的第三方托管。环境变量仍然存在,并且具有很多用途。忽略它们确实是一个错误。 –

8

这不是从应用程序之外设置它正在调试干净,但您可以添加到Main这样的事情(注:我是一个VB程序员):

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

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

请记住,如果您想更改环境变量,则需要停止调试,退出visual studio,然后在打开的命令提示符下调整变量,然后重新开始。请记住,当进程(CMD.EXE)启动下一个(DEVENV.EXE),然后是下一个(YourApp)时,环境会前进。一开始的变化不会向前推进,您需要开始链条。

+0

我发现这是比接受的答案更简单和更有效的解决方案(对我来说,无论如何) –

相关问题