1

我为 HTML5+JavaScript 库开发了一个 C# API——我使用 CefSharp 作为中间层。现在我需要创建一些单元测试,以确保 API 可以正常工作。问题是 CefSharp 不能(简单地)与 AnyCPU 一起使用,而 VisualStudio 的单元测试必须为 AnyCPU 构建。当我尝试运行测试时,这会导致错误:CefSharp.Common will work out of the box if you specify platform (x86/x64).

有没有办法超越这些限制中的任何一个?
我知道 CefSharp 会以某种方式与 AnyCPU 兼容,但我无法让它运行。


编辑

现在我没有收到第一个错误,但我有另一个错误:

System.IO.FileNotFoundException: Could not load file or assembly CefSharp, Version=57.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138 or one of its dependencies. The specified module could not be found.
File name: CefSharp, Version=57.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138
   in CefSharp.CefSharpApp.OnBeforeChildProcessLaunch(CefSharpApp* , scoped_refptr<CefCommandLine>* commandLine)

.

这是 Fusion View 的日志:

LOG: This bind starts in default load context.
LOG: Using application configuration file: C:\PROGRAM FILES (X86)\MICROSOFT VISUAL STUDIO 14.0\COMMON7\IDE\COMMONEXTENSIONS\MICROSOFT\TESTWINDOW\vstest.executionengine.x86.exe.Config
LOG: Using host configuration file: 
LOG: Using machine configuration file from C:\Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config.

LOG: Post-policy reference: CefSharp, Version=57.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138

LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp/CefSharp.DLL
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp.EXE
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/CefSharp/CefSharp.EXE
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp.EXE
LOG: Attempting download of new URL file:///C:/PROGRAM FILES (X86)/MICROSOFT VISUAL STUDIO 14.0/COMMON7/IDE/COMMONEXTENSIONS/MICROSOFT/TESTWINDOW/Extensions/CefSharp/CefSharp.EXE

相关的 GitHub 问题在这里

如果你到目前为止对我的代码感兴趣: GitHub 链接(不太相关)

4

1 回答 1

0

第一个问题

我发现设置是不够的Test>Test Settings>Default Architecture,我还必须将整个项目设置为构建为x86or x64。首先,您必须打开配置管理器。

配置管理器

.

然后你需要为你的测试项目创建x82x64平台。

添加新平台

.

请务必注意Visual Studio中最容易被忽视的复选框。如果您创建的平台不存在于您的解决方案的任何其他项目中,则需要选中此复选框,否则未选中。我相信这也是Visual Studio 中最没用的复选框,如果您愿意,可以投票赞成将其删除。

创建平台,不要忽略复选框

现在您的测试将为您选择的平台构建!

.

第二个问题

这是另一个 SO 问题的副本,可能是由于 CefSharp 是一个用 C++/CLI 编写的 NuGet 包。我不太明白这一点,但 GitHub 上的一位智者找到了解决方案

于 2017-05-02T07:55:00.823 回答