Upgrade to 88.2.90 (#131)

* Upgrade to v88.2.40-pre

WPF - Add https scheme to default URL to workaround upstream issue
https://bitbucket.org/chromiumembedded/cef/issues/3079/cant-load-urls-without-scheme

* Net Core - Add AnyCPU Platform to projects/solution

* Net Core - Add RuntimeIdentifier based on PlatformTarget

- Set RuntimeIdentifier based on PlatformTarget (PlatformTarget isn't set of AnyCPU)
- Set SelfContained to false so as not to provide a Framework Dependant build (don't include the whole .net framework)

* WPF/WinForms - Change CefSharpBuildAction to Content

For testing of ClickOnce publish

* Net 5.0 - Update to include PublishSingleFile settings

- .Net 5.0 Publish Settings for PublishSingleFile
  https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file
  Defaults differ compared to .Net Core 3.1
- Set RollForward to Major so runs on newer runtime version
- Add net5.0-windows TargetFramework

* .Net 5.0 - Publish Single Exe Example

- Use the main application exe as the BrowserSubprocess when self publishing a .Net 5.0 exe
- Only the WPF and WinForms examples have been updated

https://github.com/cefsharp/CefSharp/issues/3407

* Upgrade to 88.2.90
This commit is contained in:
Alex Maitland
2021-03-05 12:15:53 +11:00
committed by GitHub
parent f65fe59122
commit 07049f5e62
18 changed files with 311 additions and 69 deletions

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\packages\CefSharp.Common.87.1.132\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.87.1.132\build\CefSharp.Common.props')" />
<Import Project="..\packages\cef.redist.x86.87.1.13\build\cef.redist.x86.props" Condition="Exists('..\packages\cef.redist.x86.87.1.13\build\cef.redist.x86.props')" />
<Import Project="..\packages\cef.redist.x64.87.1.13\build\cef.redist.x64.props" Condition="Exists('..\packages\cef.redist.x64.87.1.13\build\cef.redist.x64.props')" />
<Import Project="..\packages\CefSharp.Common.88.2.90\build\CefSharp.Common.props" Condition="Exists('..\packages\CefSharp.Common.88.2.90\build\CefSharp.Common.props')" />
<Import Project="..\packages\cef.redist.x86.88.2.9\build\cef.redist.x86.props" Condition="Exists('..\packages\cef.redist.x86.88.2.9\build\cef.redist.x86.props')" />
<Import Project="..\packages\cef.redist.x64.88.2.9\build\cef.redist.x64.props" Condition="Exists('..\packages\cef.redist.x64.88.2.9\build\cef.redist.x64.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
@@ -72,16 +72,16 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
</PropertyGroup>
<ItemGroup>
<Reference Include="CefSharp, Version=87.1.132.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
<HintPath>..\packages\CefSharp.Common.87.1.132\lib\net452\CefSharp.dll</HintPath>
<Reference Include="CefSharp, Version=88.2.90.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
<HintPath>..\packages\CefSharp.Common.88.2.90\lib\net452\CefSharp.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CefSharp.Core, Version=87.1.132.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
<HintPath>..\packages\CefSharp.Common.87.1.132\lib\net452\CefSharp.Core.dll</HintPath>
<Reference Include="CefSharp.Core, Version=88.2.90.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
<HintPath>..\packages\CefSharp.Common.88.2.90\lib\net452\CefSharp.Core.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="CefSharp.WinForms, Version=87.1.132.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
<HintPath>..\packages\CefSharp.WinForms.87.1.132\lib\net452\CefSharp.WinForms.dll</HintPath>
<Reference Include="CefSharp.WinForms, Version=88.2.90.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
<HintPath>..\packages\CefSharp.WinForms.88.2.90\lib\net452\CefSharp.WinForms.dll</HintPath>
<Private>True</Private>
</Reference>
<Reference Include="System" />
@@ -141,8 +141,8 @@
<None Include="Resources\chromium-256.png" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\packages\CefSharp.Common.87.1.132\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.87.1.132\build\CefSharp.Common.targets')" />
<Target Name="CefSharpAfterBuildDebug" AfterTargets="AfterBuild">
<CallTarget Targets="CefSharpAfterBuildDiagnostic"/>
<CallTarget Targets="CefSharpAfterBuildDiagnostic" />
</Target>
<Import Project="..\packages\CefSharp.Common.88.2.90\build\CefSharp.Common.targets" Condition="Exists('..\packages\CefSharp.Common.88.2.90\build\CefSharp.Common.targets')" />
</Project>

View File

@@ -17,7 +17,8 @@
<ApplicationManifest>app.manifest</ApplicationManifest>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Platforms>x86;x64</Platforms>
<ProjectGuid>{1D1D63D1-5257-4AA0-A284-7EF4574878CB}</ProjectGuid>
<ProjectGuid>{1D1D63D1-5257-4AA0-A284-7EF4574878CB}</ProjectGuid>
<StartupObject>CefSharp.MinimalExample.WinForms.Program</StartupObject>
</PropertyGroup>
<ItemGroup>
@@ -30,11 +31,11 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="CefSharp.WinForms" Version="87.1.132" />
<PackageReference Include="CefSharp.WinForms" Version="88.2.90" />
</ItemGroup>
<Target Name="CefSharpAfterBuildDebug" AfterTargets="AfterBuild">
<CallTarget Targets="CefSharpAfterBuildDiagnostic"/>
<CallTarget Targets="CefSharpAfterBuildDiagnostic" />
</Target>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />

View File

@@ -11,12 +11,41 @@
<PropertyGroup>
<OutputType>WinExe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
<UseWindowsForms>true</UseWindowsForms>
<RootNamespace>CefSharp.MinimalExample.WinForms</RootNamespace>
<ApplicationManifest>app.manifest</ApplicationManifest>
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
<Platforms>x86;x64</Platforms>
<Platforms>x86;x64;AnyCPU</Platforms>
<!--
Run on a newer version of .Net if the specified version (.Net Core 3.1) is not installed
https://github.com/dotnet/docs/issues/12237
-->
<RollForward>Major</RollForward>
<StartupObject>CefSharp.MinimalExample.WinForms.Program</StartupObject>
</PropertyGroup>
<!--
.Net 5.0 Publish Settings for PublishSingleFile
https://docs.microsoft.com/en-us/dotnet/core/deploying/single-file
Defaults differ compared to .Net Core 3.1
-->
<PropertyGroup Condition="'$(TargetFramework)' == 'net5.0-windows' AND '$(PublishSingleFile)' == 'true'">
<!-- Extract all files to disk at runtime -->
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
<!-- Include our native files in the resulting exe -->
<IncludeNativeLibrariesForSelfExtract>true</IncludeNativeLibrariesForSelfExtract>
<StartupObject>CefSharp.MinimalExample.WinForms.ProgramPublishSingleFile</StartupObject>
</PropertyGroup>
<PropertyGroup Condition="'$(PlatformTarget)' == 'x86'">
<RuntimeIdentifier Condition="'$(RuntimeIdentifier)' == ''">win-x86</RuntimeIdentifier>
<SelfContained Condition="'$(SelfContained)' == ''">false</SelfContained>
</PropertyGroup>
<PropertyGroup Condition="'$(PlatformTarget)' == 'x64'">
<RuntimeIdentifier Condition="'$(RuntimeIdentifier)' == ''">win-x64</RuntimeIdentifier>
<SelfContained Condition="'$(SelfContained)' == ''">false</SelfContained>
</PropertyGroup>
<ItemGroup>
@@ -29,8 +58,26 @@
</ItemGroup>
<ItemGroup>
<PackageReference Include="CefSharp.WinForms.NetCore" Version="87.1.132" />
<None Remove="app.config" />
</ItemGroup>
<ItemGroup>
<PackageReference Include="CefSharp.WinForms.NetCore" Version="88.2.90" />
</ItemGroup>
<Target Name="CefSharpAfterBuildDiagnostic" AfterTargets="AfterBuild">
<Message Importance="high" Text="CefSharp After Build Diagnostic" />
<Message Importance="high" Text="RuntimeIdentifier = $(RuntimeIdentifier)" />
<Message Importance="high" Text="Platform = $(Platform)" />
<Message Importance="high" Text="PlatformName = $(PlatformName)" />
<Message Importance="high" Text="Platforms = $(Platforms)" />
<Message Importance="high" Text="PlatformTarget = $(PlatformTarget)" />
<Message Importance="high" Text="PlatformTargetAsMSBuildArchitecture = $(PlatformTargetAsMSBuildArchitecture)" />
<Message Importance="high" Text="TargetFramework = $(TargetFramework)" />
<Message Importance="high" Text="TargetFrameworkVersion = $(TargetFrameworkVersion)" />
<Message Importance="high" Text="NuGetProjectStyle = $(NuGetProjectStyle)" />
<Message Importance="high" Text="OutDir = $(OutDir)" />
</Target>
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
</Project>

View File

@@ -0,0 +1,60 @@
// Copyright © 2021 The CefSharp Authors. All rights reserved.
//
// Use of this source code is governed by a BSD-style license that can be found in the LICENSE file.
using CefSharp.WinForms;
using System;
using System.IO;
using System.Windows.Forms;
namespace CefSharp.MinimalExample.WinForms
{
/// <summary>
/// For .Net 5.0 Publishing Single File exe requires using your own applications executable to
/// act as the BrowserSubProcess. See https://github.com/cefsharp/CefSharp/issues/3407
/// for further details. <see cref="Program.Main(string[])"/> for the default main application entry point
/// </summary>
public class ProgramPublishSingleFile
{
[STAThread]
public static int Main(string[] args)
{
//To support High DPI this must be before CefSharp.BrowserSubprocess.SelfHost.Main so the BrowserSubprocess is DPI Aware
Cef.EnableHighDPISupport();
var exitCode = CefSharp.BrowserSubprocess.SelfHost.Main(args);
if (exitCode >= 0)
{
return exitCode;
}
var settings = new CefSettings()
{
//By default CefSharp will use an in-memory cache, you need to specify a Cache Folder to persist data
CachePath = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData), "CefSharp\\Cache"),
BrowserSubprocessPath = System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName
};
//Example of setting a command line argument
//Enables WebRTC
// - CEF Doesn't currently support permissions on a per browser basis see https://bitbucket.org/chromiumembedded/cef/issues/2582/allow-run-time-handling-of-media-access
// - CEF Doesn't currently support displaying a UI for media access permissions
//
//NOTE: WebRTC Device Id's aren't persisted as they are in Chrome see https://bitbucket.org/chromiumembedded/cef/issues/2064/persist-webrtc-deviceids-across-restart
settings.CefCommandLineArgs.Add("enable-media-stream");
//https://peter.sh/experiments/chromium-command-line-switches/#use-fake-ui-for-media-stream
settings.CefCommandLineArgs.Add("use-fake-ui-for-media-stream");
//For screen sharing add (see https://bitbucket.org/chromiumembedded/cef/issues/2582/allow-run-time-handling-of-media-access#comment-58677180)
settings.CefCommandLineArgs.Add("enable-usermedia-screen-capturing");
//Don't perform a dependency check
Cef.Initialize(settings, performDependencyCheck: false);
var browser = new BrowserForm();
Application.Run(browser);
return 0;
}
}
}

View File

@@ -43,8 +43,8 @@ namespace CefSharp.MinimalExample.WinForms
var dependencyCheck = true;
#if NETCOREAPP
//This should be fixed shortly.
#if NETCOREAPP || ANYCPU
//For .Net Core/.Net 5 this should be fixed as part of https://github.com/cefsharp/CefSharp/issues/3388
dependencyCheck = false;
#endif

View File

@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="cef.redist.x64" version="87.1.13" targetFramework="net452" />
<package id="cef.redist.x86" version="87.1.13" targetFramework="net452" />
<package id="CefSharp.Common" version="87.1.132" targetFramework="net452" />
<package id="CefSharp.WinForms" version="87.1.132" targetFramework="net452" />
<package id="cef.redist.x64" version="88.2.9" targetFramework="net452" />
<package id="cef.redist.x86" version="88.2.9" targetFramework="net452" />
<package id="CefSharp.Common" version="88.2.90" targetFramework="net452" />
<package id="CefSharp.WinForms" version="88.2.90" targetFramework="net452" />
</packages>