当我创建一个新项目时,我对未处理的异常会有一个奇怪的行为.这就是我可以重现问题的方法:
1)创建一个新的Windows窗体应用程序(C#,. NET Framework 4,VS2010)
2)将以下代码添加到Form1_Load
处理程序:
int vara = 5, varb = 0;
int varc = vara / varb;
int vard = 7;
Run Code Online (Sandbox Code Playgroud)
我希望VS中断并在第二行显示未处理的异常消息.但是,会发生的是第三行只是跳过而没有任何消息,应用程序一直在运行.
我现有的C#项目没有这个问题.所以我想我的新项目是用一些奇怪的默认设置创建的.
有没有人知道我的项目有什么问题?
我试过检查Debug-> Exceptions中的方框.但即使我在try-catch
块中处理异常,执行也会中断; 这也不是我想要的.如果我没记错的话,在这个对话框中有一个名为"未处理的异常"的列或者类似的东西,这会让我感到非常兴奋.但在我的项目中只有一列("Thrown").
我的应用程序编译正常,但我得到以下运行时错误:
System.IO.FileNotFoundException was unhandled
HResult=-2147024770
Message=Could not load file or assembly {Wrapper} or one of its dependencies. The specified module could not be found.
Run Code Online (Sandbox Code Playgroud)
调用Application中对Wrapper的引用看起来是正确的.Wrapper dll存在于正确的位置.
这个项目用于在别人的系统上构建和运行,我看过几次.该人/计算机不再可用.自上次成功构建和运行以来,某些依赖项的某些路径已发生更改,我已修复了与此相关的所有编译错误.
只是为了澄清我的项目结构:
Digraph G
{
App [ label = "My C# Application"]
Wrapper [ label = "C++/CLI Wrapper"]
Lib [ label = "C++ Library"]
Dll [ label = "My helper C# DLL"]
CDep [ label = "Series of deep C++ dependencies managed \n by CMake for Lib, hard coded relative paths for Wrapper."]
App->Wrapper->Lib->CDep; …
Run Code Online (Sandbox Code Playgroud) MainForm_Load不起作用,表单按照我的设计显示,但加载方法中没有任何内容发生.当我放置一个断点时它只是跳过这个方法,我试图删除该方法并重新创建它但它仍然无法正常工作.
我正在使用Visual Studio 2010,在我做的其他项目中,everithing工作得很好.
即使是最基本的功能也不起作用.这是一个例子:
public FormMain()
{
InitializeComponent();
}
private void FormMain_Load(object sender, EventArgs e)
{
MessageBox.Show("Test");
}
Run Code Online (Sandbox Code Playgroud)
有任何想法吗??TNX