cefsharp/cef-binary

Deprecate cef.redist packages

amaitland opened this issue · 14 comments

  • Add extra copy of locales to chromiumembeddedframework.runtime arch specific packages
  • Move Copy targets into chromiumembeddedframework.runtime arch specific packages
  • chromiumembeddedframework.runtime package would need to add support for the build folder (currently only uses buildTransitive)

Target is to make them compatible so we can deprecate the old Cef.redist packages.

Commit 8a902f2 adds the required props.

Haven't tested to see if the folder structure for the swiftshader/locales directories is preserved.

There was a problem with the net core package when using a runtime identifier, the locales/swiftshader files weren't being copied. Revert changes for now.

It doesn't look like moving the locales/swiftshader into the arch packages is possible for the net core packages. It may still be possible though not worth the effort.

Hi @amaitland,
after upgrading to CefSharp.Common.NETCore 93.1.70-CI4201 (with chromiumembeddedframework.runtime 93.1.11), we face the issue that the locales and swiftshader folders are no longer copied when using a RuntimeIdentifier like win-x64, and thus resources fail to load. Can the changes for this be reverted/fixed?

Thanks!

@kpreisser Thanks for the reminder. The changes will need to be reverted as per my comment above.

If you remove the packages from your cache and redownload them the problem should be resolved.

build https://ci.appveyor.com/project/cefsharp/cef-binary/builds/40634148 using https://github.com/cefsharp/cef-binary/tree/cef/93

I've left master unchanged as I'll test replacing the runtime.json with a .props/.targets file that adds the PackageReference entries based on RuntimeIdentifier

Reference https://github.com/cefsharp/CefSharp/blob/master/NuGet/PackageReference/CefSharp.Common.NETCore.targets#L142

If that doesn't work then it's likely this idea won't work.

If you remove the packages from your cache and redownload them the problem should be resolved.

build https://ci.appveyor.com/project/cefsharp/cef-binary/builds/40634148 using https://github.com/cefsharp/cef-binary/tree/cef/93

Thanks! Using these new packages seems to work.

It appears that swiftshader is being replaced and at some point in the future we can stop shipping the swiftshader folder as the new dlls are included in the base directory. This will simplify our packages slightly and potentially make deprecating cef.redist easier as we only have to deal with the locales, which are likely duplicated between the different archs currently (haven't confirmed this, will need to hash them all and confirm the files are the same across the three archs)

Reference https://bitbucket.org/chromiumembedded/cef/issues/3176/win-linux-ship-vk_swiftshaderdll-vulkan

Issue https://bugs.chromium.org/p/chromium/issues/detail?id=1060139 tracks removing of Swiftshader.

Once Swiftshader has been removed moving locales into a new package should be fairly trivial. I haven't checked though I suspect that locales are the same for each arch at least the windows ones, so we can possibly just ship a single set of files.

If we only need to ship a single set of locales then it might be possible to use contentfiles to include the relevant files and programmatically set CefSettings.LocalesDirPath. Haven't done any testing around this yet.

We've exceeded the quote limits on MyGet so the old cef.redist packages will no longer be generated going forward.

They newer chromiumembeddedframework.runtime packages will be used in CefSharp. Anyone using the cef.redist pacakges directly will need to migrate as well.