我正在使用CefSharp编写一个应用程序进行XUnit测试。
但是测试出现了异常崩溃:
System.IO.FileNotFoundException: 无法加载文件或程序集“CefSharp,Version=55.0.0.0,Culture=neutral,PublicKeyToken=40c4b6fc221f4138”或其某个依赖项。系统找不到指定的文件。
在XUnit问题跟踪器( https://github.com/xunit/xunit/issues/4)中,解决方法是将shadowCopy选项设置为false。但这对我不起作用。
CefSharp有一些文件需要与可执行文件放在一起 (https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#Runtime_dependencies)。所有这些文件都存在于bin文件夹中,当我使用
我尝试使用Kernel32中的
我还尝试手动加载程序集
我应该把所有的CefSharp文件放在哪里才能让XUnit找到它们?我在VisualStudio中集成的Xunit测试和Xunit控制台中都遇到了同样的问题。
编辑:
问题已解决(请参见答案)。除了使用SpecFlow创建的测试之外,所有测试都通过了。
这次它抛出了
但是测试出现了异常崩溃:
System.IO.FileNotFoundException: 无法加载文件或程序集“CefSharp,Version=55.0.0.0,Culture=neutral,PublicKeyToken=40c4b6fc221f4138”或其某个依赖项。系统找不到指定的文件。
在XUnit问题跟踪器( https://github.com/xunit/xunit/issues/4)中,解决方法是将shadowCopy选项设置为false。但这对我不起作用。
CefSharp有一些文件需要与可执行文件放在一起 (https://github.com/cefsharp/CefSharp/wiki/Frequently-asked-questions#Runtime_dependencies)。所有这些文件都存在于bin文件夹中,当我使用
System.IO.Directory.GetCurrentDirectory()
检查当前目录时,这是正确的文件夹。我尝试使用Kernel32中的
SetDllDirectory
将bin文件夹添加进去,但没有任何变化。我还尝试手动加载程序集
Assembly.LoadFile()
。这个调用成功了,但稍后在初始化cef时,异常仍然发生。因此,问题可能不是找不到程序集本身,而是CefSharp需要的文件。我应该把所有的CefSharp文件放在哪里才能让XUnit找到它们?我在VisualStudio中集成的Xunit测试和Xunit控制台中都遇到了同样的问题。
编辑:
问题已解决(请参见答案)。除了使用SpecFlow创建的测试之外,所有测试都通过了。
这次它抛出了
Could not load file or assembly
,但这次是针对CefSharp.Core。