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:
parent
f65fe59122
commit
07049f5e62
@ -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')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
@ -87,16 +87,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.OffScreen, Version=87.1.132.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
|
||||
<HintPath>..\packages\CefSharp.OffScreen.87.1.132\lib\net452\CefSharp.OffScreen.dll</HintPath>
|
||||
<Reference Include="CefSharp.OffScreen, Version=88.2.90.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
|
||||
<HintPath>..\packages\CefSharp.OffScreen.88.2.90\lib\net452\CefSharp.OffScreen.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="System" />
|
||||
@ -117,8 +117,8 @@
|
||||
<None Include="packages.config" />
|
||||
</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" />
|
||||
</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>
|
@ -7,15 +7,30 @@
|
||||
<BaseOutputPath>bin.netcore\</BaseOutputPath>
|
||||
</PropertyGroup>
|
||||
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
<Import Project="Sdk.props" Sdk="Microsoft.NET.Sdk" />
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
|
||||
<RootNamespace>CefSharp.MinimalExample.OffScreen</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>
|
||||
</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>
|
||||
@ -28,8 +43,12 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CefSharp.OffScreen.NetCore" Version="87.1.132" />
|
||||
<None Remove="app.config" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk.WindowsDesktop" />
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CefSharp.OffScreen.NetCore" Version="88.2.90" />
|
||||
</ItemGroup>
|
||||
|
||||
<Import Project="Sdk.targets" Sdk="Microsoft.NET.Sdk" />
|
||||
</Project>
|
||||
|
@ -36,8 +36,8 @@ namespace CefSharp.MinimalExample.OffScreen
|
||||
|
||||
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
|
||||
|
||||
|
@ -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.OffScreen" 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.OffScreen" version="88.2.90" targetFramework="net452" />
|
||||
</packages>
|
@ -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" />
|
||||
</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>
|
@ -18,6 +18,7 @@
|
||||
<GenerateAssemblyInfo>false</GenerateAssemblyInfo>
|
||||
<Platforms>x86;x64</Platforms>
|
||||
<ProjectGuid>{1D1D63D1-5257-4AA0-A284-7EF4574878CB}</ProjectGuid>
|
||||
<StartupObject>CefSharp.MinimalExample.WinForms.Program</StartupObject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -30,7 +31,7 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CefSharp.WinForms" Version="87.1.132" />
|
||||
<PackageReference Include="CefSharp.WinForms" Version="88.2.90" />
|
||||
</ItemGroup>
|
||||
|
||||
<Target Name="CefSharpAfterBuildDebug" AfterTargets="AfterBuild">
|
||||
|
@ -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>
|
||||
|
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
@ -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
|
||||
|
||||
|
@ -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>
|
@ -33,14 +33,20 @@ namespace CefSharp.MinimalExample.Wpf
|
||||
|
||||
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
|
||||
|
||||
//Example of checking if a call to Cef.Initialize has already been made, we require this for
|
||||
//our .Net 5.0 Single File Publish example, you don't typically need to perform this check
|
||||
//if you call Cef.Initialze within your WPF App constructor.
|
||||
if (!Cef.IsInitialized)
|
||||
{
|
||||
//Perform dependency check to make sure all relevant resources are in our output directory.
|
||||
Cef.Initialize(settings, performDependencyCheck: dependencyCheck, browserProcessHandler: null);
|
||||
}
|
||||
}
|
||||
|
||||
#if ANYCPU
|
||||
private static System.Reflection.Assembly Resolver(object sender, ResolveEventArgs args)
|
||||
|
@ -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')" />
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
@ -93,16 +93,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.Wpf, Version=87.1.132.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
|
||||
<HintPath>..\packages\CefSharp.Wpf.87.1.132\lib\net452\CefSharp.Wpf.dll</HintPath>
|
||||
<Reference Include="CefSharp.Wpf, Version=88.2.90.0, Culture=neutral, PublicKeyToken=40c4b6fc221f4138">
|
||||
<HintPath>..\packages\CefSharp.Wpf.88.2.90\lib\net452\CefSharp.Wpf.dll</HintPath>
|
||||
<Private>True</Private>
|
||||
</Reference>
|
||||
<Reference Include="Microsoft.Xaml.Behaviors, Version=1.1.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||
@ -178,8 +178,8 @@
|
||||
</ItemGroup>
|
||||
<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" />
|
||||
</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>
|
@ -11,13 +11,42 @@
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>WinExe</OutputType>
|
||||
<TargetFramework>netcoreapp3.1</TargetFramework>
|
||||
<TargetFrameworks>netcoreapp3.1;net5.0-windows</TargetFrameworks>
|
||||
<UseWPF>true</UseWPF>
|
||||
<RootNamespace>CefSharp.MinimalExample.Wpf</RootNamespace>
|
||||
<ApplicationIcon>chromium-256.ico</ApplicationIcon>
|
||||
<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.Wpf.App</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>
|
||||
|
||||
<!--
|
||||
.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.Wpf.ProgramPublishSingleFile</StartupObject>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
@ -32,7 +61,11 @@
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CefSharp.Wpf.NetCore" Version="87.1.132" />
|
||||
<None Remove="App.config" />
|
||||
</ItemGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="CefSharp.Wpf.NetCore" Version="88.2.90" />
|
||||
<PackageReference Include="Microsoft.Xaml.Behaviors.Wpf" Version="1.1.19" />
|
||||
</ItemGroup>
|
||||
|
||||
|
@ -41,7 +41,7 @@
|
||||
</Grid>
|
||||
<Border Grid.Row="1" BorderBrush="Gray" BorderThickness="0,1">
|
||||
<wpf:ChromiumWebBrowser x:Name="Browser"
|
||||
Address="www.google.com">
|
||||
Address="https://www.google.com">
|
||||
<behaviors:Interaction.Behaviors>
|
||||
<behaviours:HoverLinkBehaviour x:Name="HoverLinkBehaviour"/>
|
||||
</behaviors:Interaction.Behaviors>
|
||||
|
62
CefSharp.MinimalExample.Wpf/Program.PublishSingleFile.cs
Normal file
62
CefSharp.MinimalExample.Wpf/Program.PublishSingleFile.cs
Normal file
@ -0,0 +1,62 @@
|
||||
// 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.Wpf;
|
||||
using System;
|
||||
using System.IO;
|
||||
|
||||
namespace CefSharp.MinimalExample.Wpf
|
||||
{
|
||||
/// <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
|
||||
//By default this example calls Cef.Initialzie in the CefSharp.MinimalExample.Wpf.App
|
||||
//constructor for purposes of providing a self contained single file example we call it here.
|
||||
//You could remove this code and use the CefSharp.MinimalExample.Wpf.App example if you
|
||||
//set BrowserSubprocessPath to an absolute path to your main application exe.
|
||||
Cef.Initialize(settings, performDependencyCheck: false);
|
||||
|
||||
var app = new App();
|
||||
app.InitializeComponent();
|
||||
return app.Run();
|
||||
}
|
||||
}
|
||||
}
|
@ -1,8 +1,8 @@
|
||||
<?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.Wpf" 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.Wpf" version="88.2.90" targetFramework="net452" />
|
||||
<package id="Microsoft.Xaml.Behaviors.Wpf" version="1.1.19" targetFramework="net452" />
|
||||
</packages>
|
@ -11,32 +11,46 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "CefSharp.MinimalExample.Off
|
||||
EndProject
|
||||
Global
|
||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||
Debug|Any CPU = Debug|Any CPU
|
||||
Debug|x64 = Debug|x64
|
||||
Debug|x86 = Debug|x86
|
||||
Release|Any CPU = Release|Any CPU
|
||||
Release|x64 = Release|x64
|
||||
Release|x86 = Release|x86
|
||||
EndGlobalSection
|
||||
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Debug|x64.Build.0 = Debug|x64
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Debug|x86.Build.0 = Debug|x86
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Release|x64.ActiveCfg = Release|x64
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Release|x64.Build.0 = Release|x64
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Release|x86.ActiveCfg = Release|x86
|
||||
{4E27910D-3B6C-41C1-84B4-A05C58EE8AE8}.Release|x86.Build.0 = Release|x86
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Debug|x64.Build.0 = Debug|x64
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Debug|x86.Build.0 = Debug|x86
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Release|x64.ActiveCfg = Release|x64
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Release|x64.Build.0 = Release|x64
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Release|x86.ActiveCfg = Release|x86
|
||||
{83E2C9C4-2967-4A49-8B2A-D31D33DCFB03}.Release|x86.Build.0 = Release|x86
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Debug|x64.ActiveCfg = Debug|x64
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Debug|x64.Build.0 = Debug|x64
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Debug|x86.ActiveCfg = Debug|x86
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Debug|x86.Build.0 = Debug|x86
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Release|x64.ActiveCfg = Release|x64
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Release|x64.Build.0 = Release|x64
|
||||
{AB1B7B81-D472-43B2-AFE3-DE5D1B22B9CE}.Release|x86.ActiveCfg = Release|x86
|
||||
|
@ -1,4 +1,4 @@
|
||||
SET cefsharpversion=87.1.132
|
||||
SET cefsharpversion=88.2.90
|
||||
|
||||
..\nuget restore CefSharp.MinimalExample.sln
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user