无法为x64和x86加载文件或程序集’CefSharp.Wpf; 只有一个有效

当我运行时,我得到: Could not load file or assembly 'CefSharp.Wpf, Version=41.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138' or one of its dependencies. An attempt was made to load a program with an incorrect format. Could not load file or assembly 'CefSharp.Wpf, Version=41.0.0.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138' or one of its dependencies. An attempt was made to load a program with an incorrect format.
这意味着问题是由于dll不正确的位数。

在版本41.0.0中,nuget包添加了对x86版本的dll引用,该版本指向正确的路径(x86文件夹)。 还有另一个dll副本指向属性面板中的空路径。 问题是x64版本因图像错误而崩溃,因为它引用了dll的x86版本。

我已经追溯到39.0.2并且CefSharp为我工作。 我有两组dll,我的应用程序的x86和x64版本按预期编译和运行。

当我再次升级到41.0.0以前的问题时。 x64版本将编译虽然应用程序使用x86版本的dll在尝试显示第一个浏览器时崩溃。 我尝试重建所有以及删除自动复制的dll,并在编译期间再次复制x86版本。 (至少我相信这是一个例子

两套Dlls

然后我删除了引用中的所有dll并手动添加了x64版本。 编译和执行工作正常,与39.02版本的CefSharp.WPF一样。

如何在不必手动更改dll路径的情况下使两个版本都能正常工作?

另一个注意事项:我可以在设置为x64时使用nuget,这与上述问题相反。 现在x64工作,x86没有。 dll的路径现在是x64文件夹。

事实certificate,经过多次苦难和痛苦之后,我发现在我的.csproj中没有正确设置引用。 他们被定义为x64某种方式。

  False    False    False   

一旦我注释掉了HintPath ,它就开始正常工作了。 请注意,实际引用由项目顶部的Import定义。

   

这些.props文件设置了将正确的.dlls复制到build文件夹所需的实际HintPath 。 我不确定我的项目如何以错误的路径设置结束。