【问题标题】:Console.Writeline working on x86 but not x64Console.Writeline 适用于 x86 但不适用于 x64
【发布时间】:2012-10-25 14:30:30
【问题描述】:

我正在 Visual Studio 2012 中测试一个项目。

当我在 x86 中运行我的代码时,Console.Writeline 会出现在输出窗口中。但是,当我在 x64 中运行它时,它不会。

我知道我可以改用System.Diagnostics.Debug,但我真的很想了解为什么Console.Writeline 不起作用,或者某处是否有设置。

谢谢。

编辑: 观察结果:Visual Studio 托管进程在两个版本中都被禁用。当我启用它时,所有Console.Writeline 消息都显示为 x64 和 x86。当我再次禁用它时,只有 x86 显示Console.Writeline

【问题讨论】:

  • 关于发生了什么的一些信息?错误还是smth?
  • 没有错误,软件功能正常,只是 Console.Writeline 没有显示在输出窗口中。如果我清理所有内容并在 x86 中重新构建......它可以工作。当我回到 x64 时,它不起作用。很奇怪。
  • +1 感谢您的提示。对我来说,启用托管过程就可以了,即使我仍在使用 vs2010。尽管如此,问题仍然是为什么这会有所作为。
  • 使用 VS 2013 并体验相同的东西。托管进程充当从您的应用程序到 VS 输出窗口的隧道是有道理的,但不知道 x86 和 x64 之间的区别来自哪里

标签: c# visual-studio visual-studio-debugging console.writeline


【解决方案1】:

两者之间应该没有区别。很可能您的 x86 和 x64 编译配置文件之间存在配置差异。检查以确保您在这两种情况下都在构建控制台应用程序。

【讨论】:

  • 您无需制作控制台应用程序即可使用Console.WriteLine,如果您从任何项目类型调用它,它应该显示在Output Window 中。
  • 这是真的,但如果您在 Visual Studio 之外运行应用程序,Console.WriteLine 不会显示在应用程序控制台窗口中。据我了解,这就是问题所在。
  • 好吧,我的 x64 和 x86 版本都禁用了 Visual Studio 托管进程。但是,x86 仍然显示控制台消息。如果我启用托管进程,x64 也会这样做。我只是想了解为什么非托管 x86 和 x64 构建之间存在差异。
【解决方案2】:

确保在创建 x64 时从 AnyCpu 复制设置。我也遇到过类似的问题,但是我复制后,它工作正常。

【讨论】:

    猜你喜欢
    • 2013-11-26
    • 1970-01-01
    • 2023-04-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多