这是一个扭曲的问题。当我在Visual Studio中使用F5运行我的程序时,一切正常。如果我在没有调试器的情况下启动它,或者从VS外部启动它,会发现一些我无法找到的令人讨厌的错误。
我怀疑这是由调试器随机化所有未初始化的变量引起的,在“外部”之后,它们被设置为0.我必须使用变量而不在某处启动它...
答案 0 :(得分:4)
正如汉斯帕斯特所说,你有错误的方法。在Debug中,内存已初始化,但在发布时它可能是任何内容。
一般情况下,如果您在发布中出现了一些在调试中没有发生的问题,那么可能会涉及到以下几点:
您可以使用调试器附加到正在运行的程序。我认为它位于VS的“调试”菜单中,称为“附加到进程...”。确保为发布版本生成调试符号,以便获得可用的调用堆栈。
答案 1 :(得分:0)
我最近遇到了类似的问题,除了它甚至更奇怪。当我在visual studio中运行发布时,代码运行正常,但是当我在visual studio外部运行程序时(只需单击.exe),它就会发生这个非常大的错误。
原来是因为:
angle = MathHelper.ToRadians(angle);
当角度为0时,它将失败并产生一些奇怪的结果。 我只需将其修改为:
即可修复它angle = MathHelper.ToRadians(angle+.01f);
对于这么小的东西来说非常烦人的问题。希望这有助于其他人发现类似的错误。