【问题标题】:Set debug/run environment variable in Visual Studio 2010 C# project?在 Visual Studio 2010 C# 项目中设置调试/运行环境变量?
【发布时间】:2013-06-25 12:10:50
【问题描述】:

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

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

我很欣赏一种解决方法是在环境变量就位的情况下启动我的 IDE,但我宁愿从 IDE 控制它。这可能吗?

【问题讨论】:

  • 如果我理解:您想在 IDE 中管理一个环境变量并在运行时传递给您的应用程序吗?
  • @michele 我想启动一个调试会话并指定一个可供我的应用程序使用的环境变量。在 Eclipse 中,这可以使用“运行配置”轻松实现。
  • 你试过使用配置文件吗?

标签: c# visual-studio-2010 visual-studio


【解决方案1】:

它不如从正在调试的应用程序外部设置它干净,但您可以添加到 Main 类似这样的内容(注意我是 VB 程序员):

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

【讨论】:

    【解决方案2】:

    这在 C++ IDE 中是可能的,而不是 C# IDE。我猜它是故意省略的,因为 C# 有更好的方法来配置程序。环境变量很尴尬,因为它们需要在部署应用程序时修补用户系统环境的安装程序。这很脆弱,另一个安装程序可以轻松破坏它,而且他们经常这样做。

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

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

    通过使用 C++ IDE 启动程序的技巧,您仍然可以得到想要的结果:

    • 向您的解决方案添加一个新项目并选择 Visual C++、General、Makefile 项目模板。
    • 马上点击完成,向导问了太多问题。
    • 右键单击添加的项目,属性,选择 NMake 节点。
    • 编辑“Build Command Line”设置,并将其设置为“echo Done”。
    • 编辑“输出”设置,将其设置为 C# 可执行文件的完整路径。
    • 选择 Debugging 节点,将 Debugger 类型更改为 Managed Only。
    • 你会看到下面的那个,你想要什么,编辑“环境”设置。
    • 再次右键单击该项目,选择“设置为启动项目”。

    【讨论】:

    • 使用环境变量不一定需要安装程序修改用户的系​​统环境。环境变量是按进程划分的,通常从系统继承,但并非总是如此。这就是ProcessStartInfo.EnvironmentVariables 存在的原因。在多进程应用程序中,当命令行 args API 无法修改或使用时,它们是为程序提供启动配置的替代方法。 IMO 忽略 C# 调试器的此设置是错误的。
    • 另一种有用的情况是,当您正在开发将由第三方托管的应用程序时,该第三方通过环境变量将信息传递给您的程序。环境变量活得很好,它们有很多用途。忽略它们肯定是一个错误。
    【解决方案3】:

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

    请记住,如果您想更改环境变量,您需要停止调试,退出 Visual Studio,然后在打开的命令提示符中调整变量,然后重新开始。请记住,环境随着进程 (CMD.EXE) 启动下一个 (DEVENV.EXE) 和下一个 (YourApp) 向前移动。最开始的更改并没有向前推进,您需要重新开始链。

    【讨论】:

    • 我发现这是一个比公认的答案更简单、更有效的解决方案(无论如何对我来说)
    猜你喜欢
    • 1970-01-01
    • 2015-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-04
    • 2014-01-21
    • 1970-01-01
    相关资源
    最近更新 更多