用户代码

时间:2016-05-17 11:21:39

标签: c# wpf xaml user-interface filenotfoundexception

所以,我有一个带有GUI的C#应用​​程序,它是用XAML编写的。我的应用程序刚刚正在运行并正确显示,但是,在对XAML中的一个GUI元素进行一些小的更改(字面意思只是调整大小和移动按钮)之后,我再次构建了我的代码,但现在尝试运行它时,我得到的错误消息说:

  

FileNotFoundException未被用户代码

处理

错误突出显示该行:

WebKit.WebKitBrowser browser = new WebKit.Browser();

在我的MainWindow.xaml.cs文件中(MainWindow.xaml是GUI源文件,我重新定位了其中一个GUI元素。)

之前我遇到过这个错误,并通过转到Project - >修复了它。添加引用,并选中' WindowsFormsIntegration' ...但是,我已经仔细检查过这个,但它仍然被选中。

我查看了我的文件夹结构,可以看到我的Debug和Release文件夹中都存在WebKit.Interop.dll文件......

我也试过撤消我对GUI所做的更改,重建并再次运行代码,但是我得到了同样的错误。

任何人都有任何想法,为什么会这样?我是否不小心点击/按下了我不应该拥有的东西?我该如何解决这个问题?

修改

当我点击“查看详情...”时在显示的FileNotFoundException was unhandled by user code消息中,System.IO.FileNotFoundException说:

  

{"无法加载文件或程序集' WebKit.Interop,Version = 533.0.0.0,Culture = neutral,PublicKeyToken = b967213f6d29a3be'或其中一个依赖项。系统找不到指定的文件。":" WebKit.Interop,Version = 533.0.0.0,Culture = neutral,PublicKeyToken = b967213f6d29a3be"}

InnerException有值:

  

FileName是:

  

WebKit.Interop,Version = 533.0.0.0,Culture = neutral,PublicKeyToken = b967213f6d29a3be

FusionLog是:

  

===预绑定状态信息===   日志:DisplayName = WebKit.Interop,Version = 533.0.0.0,Culture = neutral,PublicKeyToken = b967213f6d29a3be    (完全指定的)   日志:Appbase = file:/// C:/.../bin/Debug/   日志:初始PrivatePath = NULL

     

调用程序集:WebKitBrowser,Version = 0.5.0.0,Culture = neutral,PublicKeyToken = b967213f6d29a3be。

     

日志:此绑定在默认加载上下文中启动。   日志:使用应用程序配置文件:C:... \ bin \ Debug \ WpfApplication1.vshost.exe.Config   日志:使用主机配置文件:   日志:使用C:\ Windows \ Microsoft.NET \ Framework \ v4.0.30319 \ config \ machine.config中的计算机配置文件。   日志:政策后参考:WebKit.Interop,Version = 533.0.0.0,Culture = neutral,PublicKeyToken = b967213f6d29a3be   日志:尝试下载新的URL文件:/// C:/.../bin/Debug/WebKit.Interop.DLL。   日志:尝试下载新的URL文件:/// C:/.../bin/Debug/WebKit.Interop/WebKit.Interop.DLL。   日志:尝试下载新的URL文件:/// C:/.../bin/Debug/WebKit.Interop.EXE。   日志:尝试下载新的URL文件:/// C:/.../bin/Debug/WebKit.Interop/WebKit.Interop.EXE。

当我查看FusionLog指定的文件夹位置时,我可以看到它正在查找的WpfApplication1.vshost.exe文件...(有WpfApplication1.vshost应用程序清单, WpfApplication1.vshost应用,WpfApplication1.vshost.exe XML配置和WpfApplication1.vshost.exe.manifest MANIFEST文件全部位于该位置......(以及其他一些文件:.exe.exe.manifest {{1等等)

修改

发生此异常的代码位于我的Source Browser Database类的构造函数之上,即我声明该类的全局变量:

MainWindow.xaml.cs

正在抛出异常:

using Newtonsoft.Json.Linq;
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Controls;
using System.Threading;
using System.Threading.Tasks;
using System.Diagnostics;
using System.IO;
using System.Text;
using System.Xml;
using System.Windows.Media;
using System.Windows.Forms;
using WebKit;
using System.Collections;

namespace Agent
{
    public partial class MainWindow : Window
    {
        ...
        System.Windows.Forms.Integration.WindowsFormsHost host = new System.Windows.Forms.Integration.WindowsFormsHost();
        WebKit.WebKitBrowser browser = new WebKit.WebKitBrowser();

        ...
    }
}

并说它

  

无法加载文件或程序集WebKit.Interop,版本533.0.0.0 ...

1 个答案:

答案 0 :(得分:0)

这里的问题是我已经完成了“重建”,而不仅仅是再次构建我的代码,编译器已从我的构建文件夹中删除了webkit.interop.dll文件。手动将webkit.interop.dll从发布版本文件夹复制到调试版本文件夹后,这解决了问题。