CefSharp.WinForms指定了低版本108.4.130,可是生成后的dll版却是121.3.7.0
问题:
CefSharp.WinForms指定了低版本108.4.130

生成的libcef.dll版本却是121.3.7.0,

分析:
之前有指定版本121.3.7.0并生成过。怀疑用的是之前的版本,然后之前的版本的缓存在本地的哪个位置。于是删除项目底下
packages\CefSharp.WinForms.108.4.130
packages\CefSharp.Common.108.4.130
packages\cef.redist.x86.108.4.13
packages\cef.redist.x64.108.4.13
这些文件。
然后断开网络,重新指定108.4.130,发现nuget没网络都能重新获取108.4.130。
可以确定nuget下载的包,一定缓存在本地的哪个位置。
百度一下,发现nuget的本地缓存路径在:%userprofile%\.nuget\packages,例如C:\Users\Administrator\.nuget\package
正常在Visual Studio中引入Nuget包时,会先在缓存文件夹判断,如果存在,就直接复制到项目文件夹下,不存到,就到Nuget服务器下载。

解决:
1、删除掉%userprofile%\.nuget\packages里面的缓存文件。然后重新指定版本108.4.130。这次发现nuget会去重新下载108.4.130了。
但是项目生成的dll还是121.3.7.0。
2、CefSharp.WinForms指定更高的版本,并且之前没有下载过的版本。我这边指定了了131.2.70

同时,cef.redist.x86一定还要留在108.4.130

然后重新生成项目,发现生成的dll已经是108.4.130,但是跟我们的nuget指定的版本还是不一致。
于是重新回来指定CefSharp.WinForms108.4.130。这时在重新生成的dll也是108.4.130了。
总结:
这应该是nuget跟CefSharp的一个bug。CefSharp.WinForms与cef.redist.x86不能一致导致了。切换版本的需要注意。同时知道了nuget在C盘有另外的缓存文件,后续可以指定缓存的路径,或删除,避免大量占用C盘空间。

浙公网安备 33010602011771号