C# 代码仅在调试器-MS Visual C中执行#
我正在使用Microsoft Visual C#2008快速版。(我很抱歉——这更像是一个MS Vis C可用性问题,而不是一个严格的编程问题……) 我写了一个小程序。当我在MS VC中使用调试器运行它时,一切都很好。当我使用“单击一次”生成要部署的内容时(我使用的是“从CD-ROM”选项,而不是“从网站”),然后我将其安装到我的机器(或其他机器)上,除了一段代码无法运行外,一切都很好 未运行的代码是try/catch循环的“catch”部分。我故意有一个bug,我知道它会在应用程序中生成一个异常,因此我可以测试该捕获。该捕获会打开一个GUI,并要求用户将数据发送回我。在调试器中,这可以正常工作。在独立发布的应用程序中,这不起作用 有什么想法吗 我指出我正在运行“快速版”,因为一位朋友提到我可能有一个部署“问题”,而且似乎快速版的部署选项有限,可能我需要的是标准版…(因为我可以使用Windows Installer而不是“单击一次”发布方法) 这些有意义吗 谢谢你的帮助 -阿黛娜C# 代码仅在调试器-MS Visual C中执行#,c#,visual-studio-2008,deployment,catch-block,C#,Visual Studio 2008,Deployment,Catch Block,我正在使用Microsoft Visual C#2008快速版。(我很抱歉——这更像是一个MS Vis C可用性问题,而不是一个严格的编程问题……) 我写了一个小程序。当我在MS VC中使用调试器运行它时,一切都很好。当我使用“单击一次”生成要部署的内容时(我使用的是“从CD-ROM”选项,而不是“从网站”),然后我将其安装到我的机器(或其他机器)上,除了一段代码无法运行外,一切都很好 未运行的代码是try/catch循环的“catch”部分。我故意有一个bug,我知道它会在应用程序中生成一个异
(一个旧的命令行UNIX C++程序员,在这个微软的“视觉世界”中挣扎着理解,
是在一个窗体的构造函数/ OnLoad中的这个代码吗?在这个区域中有/没有调试器之间有已知的差异。
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
BeginInvoke((Action)LoadStuff);
}
void LoadStuff()
{
// todo...
}
您是否尝试过在VS的非调试模式下运行应用程序?(Ctrl+F5)。然后会发生什么?捕获块是否被命中?您如何知道您的异常生成代码正在被执行?也许您也可以发布它。@BFree-我会试试。@Tim-在我的捕获中,它会弹出一个新对话框(我已经让它将行写入System.Console)。因此,当我看到对话框和行时,我知道它正在执行。@BFree-在非调试模式下运行会产生与安装的应用程序一样的结果-捕获没有执行。我不理解它,但我将执行我下面提到的操作-将我的try/catch块放在其他位置,而不是放在应用程序周围。运行行。这就是这正是我的观点-您如何知道在非调试中抛出异常?try/catch在我的应用程序中。Run()…请看我前几天的另一篇帖子:是的,我看到了应用程序。如果在load表单中抛出异常,则运行时的行为会异常。好的-也许在那里尝试/捕获并不是一个好主意…我将在整个程序中的其他关键区域/函数周围展示它…谢谢!