【问题标题】:Is there any way to debug a solution without building a .exe?有没有办法在不构建 .exe 的情况下调试解决方案?
【发布时间】:2012-09-20 09:34:27
【问题描述】:

基本上,我在学校使用 C# 进行编码,由于学校网络的限制,我构建的可执行文件被组策略阻止; “此程序被组策略阻止...”

我已经和学校的管理员谈过了,但是这个问题将是长期的,可能会有些令人沮丧,因为我必须在学校编码,希望尽可能少的错误,把解决方案带回家,看看它是否在那里工作。

有没有其他方法可以调试我的 C# 程序?

更新: 感谢所有的反馈,我已经接受了人们所说的;我的文件在学校的网络驱动器上,我无法访问本地驱动器。我想在家测试我的文件不是一个太糟糕的解决方案,但是人们提到了“单元测试”,这究竟意味着什么?

【问题讨论】:

  • 不编译就无法调试。提供编码课程的学校会阻止您构建可执行文件,这听起来很奇怪。 =/
  • 听起来您的项目位于网络驱动器上。你不能(暂时)把它移到本地驱动器吗?
  • 如果你家里有电脑,那就在上面安装VS2012 Express并调试直到奶牛回家。

标签: c# build visual-studio-2012 executable exe


【解决方案1】:

您可以通过测试执行部分程序。

【讨论】:

  • 假设这些部分位于一个单独的项目中,并且该特定构建配置当然不会构建可执行项目。 =)
  • 你的答案需要更具体一点,而不是一个小句子。至少解释一下这是如何解决问题的 - 可执行文件仍然可以构建它只是没有直接执行。
  • 笨蛋,你能解释一下单元测试的过程吗?
  • 但是测试运行器会被允许吗?
  • 如果您设法将 .exe 放在允许运行它的另一台机器上,您可以使用 Visual Studio 进行远程调试。
【解决方案2】:

不,如果不构建和运行某些可执行文件,就无法调试代码。 (试图弄清楚程序在不运行它的情况下做了什么相当于halting problem

听起来你们学校的政策类似于“如果该程序不在我的允许程序列表中,则不要运行该程序”,在这种情况下,您应该能够运行您的代码只需构建一个 DLL 而不是可执行文件,然后让一些其他程序(例如单元测试应用程序)为您加载和运行您的代码。

值得首先与您的管理员讨论这一点,但是如果他们对您以这种方式绕过他们的安全策略感到满意,那么没有真正的理由限制您执行任意程序。

【讨论】:

    【解决方案3】:

    基本上,IDE 需要构建应用程序并生成编译输出以及调试符号才能调试您的代码。

    没有经过编译的输出什么都做不了。调试的工作原理是调试指向源代码中与可执行代码中的内存位置或函数指针相匹配的位置的符号,IDE 使用该信息向您显示当前正在执行的代码行以及范围内变量的值。

    我完全同意并支持其他使用单元测试来测试和调试应用程序部分的答案。

    【讨论】:

      猜你喜欢
      • 2012-07-16
      • 1970-01-01
      • 2016-03-04
      • 1970-01-01
      • 1970-01-01
      • 2016-04-18
      • 2017-09-20
      • 1970-01-01
      • 2012-07-25
      相关资源
      最近更新 更多