Visual Studio是否可以在运行时编写代码或调试应用程序?

时间:2011-08-23 20:28:10

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

正如问题所说,我想在不设置断点或暂停/重新启动应用程序的情况下实时编写代码或调试应用程序。

例如,当我编写游戏时,我希望看到当我在第二台显示器上运行游戏时立即更改用于计算灯光效果或敌人AI的代码时发生的事情。

更新 好吧,你们似乎并不完全明白我想要的东西。

我希望Visual Studio更像是一个WYSIWYG编辑器...进行更改或添加新代码,并立即查看我的应用程序中发生的变化,而无需暂停其工作。

更新 我在Eclipse中使用Java在this Video中看到了这个功能(转到14:30,他在不停止的情况下改变了游戏的光效。)

5 个答案:

答案 0 :(得分:3)

有时。查看“编辑并继续”功能:http://msdn.microsoft.com/en-us/library/bcew296c%28v=vs.80%29.aspx

根据评论,听起来你要么想要一种动态语言(很多游戏都是用LUA编写的,或者检查我们的IronPythonIronRuby)或者你想要动态加载和重新加载程序集,这可能需要MAF之类的东西。有了它,您可以构建您正在更改的位作为插件,然后在更改时卸载并重新加载插件程序集。虽然这看起来很糟糕,但与DLR语言相比可能表现不佳。

答案 1 :(得分:0)

以下是您想要了解的有关Visual Studio中的编辑和继续功能的信息:

http://msdn.microsoft.com/en-us/library/bcew296c(v=vs.80).aspx

答案 2 :(得分:0)

您可以在调试时编辑代码,但在此期间不会执行任何指令。 如果按F10,将执行下一条指令。如果你点击F5,正常执行将继续。

答案 3 :(得分:0)

为什么不创建包含要应用的值的资源文件。然后有一个命令,您可以在将重新读取该文件的应用程序中执行。魔兽世界有这样的功能。 /reload ui

答案 4 :(得分:0)

是的,但除非编辑和继续足以满足您的需要,否则您需要自己设计和实现这些功能。

  • 如果更改是数据驱动的 - 只需在某些文件更改时重新加载数据。
  • 如果代码中有更改 - 请考虑使代码的这一部分处于单独的程序集中并动态加载并重新连接(可能需要强签名的程序集到正确的版本代码)。或者将代码动态编译到新程序集中(以避免在同一app域中发生程序集冲突)。

在所有情况下,您需要弄清楚如何处理可能在较旧对象中丢失先前状态的部分。