所以,我有一个带有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 ...
答案 0 :(得分:0)
这里的问题是我已经完成了“重建”,而不仅仅是再次构建我的代码,编译器已从我的构建文件夹中删除了webkit.interop.dll
文件。手动将webkit.interop.dll
从发布版本文件夹复制到调试版本文件夹后,这解决了问题。