Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在Visual Studio中,是否可以在应用程序运行时编写代码或调试应用程序?_C#_Visual Studio_Visual Studio 2010 - Fatal编程技术网

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

C# 在Visual Studio中,是否可以在应用程序运行时编写代码或调试应用程序?,c#,visual-studio,visual-studio-2010,C#,Visual Studio,Visual Studio 2010,正如问题所说,我希望在不设置断点或暂停/重新启动应用程序的情况下实时编写代码或调试应用程序 例如,当我编写一个游戏时,我希望看到当我在第二台显示器上运行游戏时,立即更改用于计算灯光效果或敌人AI的代码时发生了什么 更新: 好吧,看来你们不太明白我到底想要什么 我希望Visual Studio更像一个所见即所得编辑器…进行更改或添加新代码,并立即查看我的应用程序中发生了什么更改,而无需应用程序暂停其工作 更新: 我在Eclipse中的Java中看到了这一特性(转到14:30,他在不停止游戏的情况下

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

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

更新: 好吧,看来你们不太明白我到底想要什么

我希望Visual Studio更像一个所见即所得编辑器…进行更改或添加新代码,并立即查看我的应用程序中发生了什么更改,而无需应用程序暂停其工作

更新:
我在Eclipse中的Java中看到了这一特性(转到14:30,他在不停止游戏的情况下更改游戏的灯光效果)。

有时。签出“编辑并继续”功能:


根据这些评论,听起来你要么想要一种动态语言(很多游戏都是用脚本编写的,或者检查我们的or),要么想要动态加载和重新加载程序集,这可能需要类似的东西。有了它,您可以构建您正在更改为加载项的位,然后在加载项程序集更改时卸载并重新加载它们。不过,这似乎有点老套,与DLR语言相比,它的性能可能会很差。

有时。签出“编辑并继续”功能:


根据这些评论,听起来你要么想要一种动态语言(很多游戏都是用脚本编写的,或者检查我们的or),要么想要动态加载和重新加载程序集,这可能需要类似的东西。有了它,您可以构建您正在更改为加载项的位,然后在加载项程序集更改时卸载并重新加载它们。不过,这似乎有点骇人听闻,与DLR语言相比,它的性能可能会很差。

以下是有关Visual Studio中“编辑并继续”功能的所有信息:


以下是有关Visual Studio中“编辑并继续”功能的所有信息:


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

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

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

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

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

  • 如果更改是数据驱动的,则只需在某些文件更改时重新加载数据即可
  • 如果代码中有更改,请考虑使代码的一部分处于单独的组装中,并动态加载并重新组装该集合(可能需要强签名的汇编到适当的版本代码)。或者动态地将代码编译成新程序集(以避免同一应用程序域中的程序集冲突)

在所有情况下,您都需要找出如何处理旧对象中可能出现的前一状态的丢失部分。

是的,但除非“编辑并继续”足以满足您的需要,否则您需要自行设计和实现该功能

  • 如果更改是数据驱动的,则只需在某些文件更改时重新加载数据即可
  • 如果代码中有更改,请考虑使代码的一部分处于单独的组装中,并动态加载并重新组装该集合(可能需要强签名的汇编到适当的版本代码)。或者动态地将代码编译成新程序集(以避免同一应用程序域中的程序集冲突)

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

我也是。还有小马:)您可以放入调试挂钩,但除此之外,我认为您运气不佳。我也是。还有小马:)您可以放入调试挂钩,但除此之外,我认为你运气不好。当我试图在运行时编辑代码时,它总是说:“代码运行时不允许更改,或者如果“当一个进程中断时中断所有进程”选项被禁用”,但我启用了该选项。有一大堆条件会中断编辑并继续:好的,因此,编辑并继续并不是我真正想要的…我希望Visual Studio更像是一个所见即所得编辑器…进行更改或添加新代码,并立即查看我的应用程序中发生的更改,而无需应用程序暂停它的工作。好的,最后我找到了我在Eclipse中通过Java看到的视频:(转到14:30,他在那里更改了游戏的灯光效果)在我当前的设备上看不到视频,但是是的,eclipse允许热交换Java类。这是.net framework的一个限制,编辑并继续是目前最接近的。当我试着在运行时编辑代码时,它总是说:“在代码运行时或禁用“一个进程中断时中断所有进程”选项时,不允许进行更改",但我启用了该选项。有一大堆条件会中断“编辑并继续”:好的,所以“编辑并继续”并不是我真正想要的…我希望Visual Studio更像一个所见即所得编辑器…进行更改或添加新代码,并立即查看我的应用程序中发生的更改,而无需应用程序暂停其工作。好的,最后我找到了我在Eclipse中用Java看到的视频:(转到14:30,他在那里更改了游戏的灯光效果)看不到视频