diff --git a/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj b/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj index 298bf60f..ed73a6ca 100644 --- a/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj +++ b/CefGlue.BrowserProcess/CefGlue.BrowserProcess.csproj @@ -1,65 +1,68 @@  - - WinExe - $(DotnetVersion) - Xilium.CefGlue.BrowserProcess - Xilium.CefGlue.BrowserProcess - osx-x64;osx-arm64;win-x64;win-arm64;linux-x64;linux-arm64 - OnOutputUpdated - false - Configuration=$(Configuration);Platform=$(Platform);TargetFramework=$(TargetFramework);IsPublishing=True;PublishTrimmed=True;SelfContained=True;RuntimeIdentifier= - True - + + WinExe + $(DotnetVersion) + Xilium.CefGlue.BrowserProcess + Xilium.CefGlue.BrowserProcess + osx-x64;osx-arm64;win-x64;win-arm64;linux-x64;linux-arm64 + OnOutputUpdated + false + Configuration=$(Configuration);Platform=$(Platform);TargetFramework=$(TargetFramework);IsPublishing=False;RuntimeIdentifier= + True + Major + - - - + + + - - - + + + - - - - + + + + - - - + + + - - - - $(ProjectDir)$(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\$(TargetFramework)\ - $(ApphostLocation)$(RuntimeIdentifier)\ - + + $(ProjectDir)$(BaseIntermediateOutputPath)$(Platform)\$(Configuration)\$(TargetFramework)\ + $(ApphostLocation)$(RuntimeIdentifier)\ + + - - - + + + + + + + - - - - + + + - - - + + + + - - - - diff --git a/CefGlue.Common.Shared/CefGlue.Common.Shared.csproj b/CefGlue.Common.Shared/CefGlue.Common.Shared.csproj index 4b4ae342..8470550a 100644 --- a/CefGlue.Common.Shared/CefGlue.Common.Shared.csproj +++ b/CefGlue.Common.Shared/CefGlue.Common.Shared.csproj @@ -10,8 +10,4 @@ - - - - diff --git a/CefGlue.Common/CefGlue.Common.csproj b/CefGlue.Common/CefGlue.Common.csproj index 8af70f78..cc81baa9 100644 --- a/CefGlue.Common/CefGlue.Common.csproj +++ b/CefGlue.Common/CefGlue.Common.csproj @@ -1,6 +1,6 @@  - + $(DotnetVersion) Xilium.CefGlue.Common @@ -21,10 +21,6 @@ - - - - @@ -40,12 +36,6 @@ CefGlue.dll - - - false - all - - @@ -56,16 +46,16 @@ - - bin\win-$(ArchitectureConfig) + + runtimes\win-$(ArchitectureConfig)\native - - - bin\linux-$(ArchitectureConfig) + + + runtimes\linux-$(ArchitectureConfig)\native - - bin\osx-$(ArchitectureConfig) + + runtimes\osx-$(ArchitectureConfig)\native diff --git a/CefGlue.Common/CefRuntimeLoader.cs b/CefGlue.Common/CefRuntimeLoader.cs index 5f7e9d25..c64efd25 100644 --- a/CefGlue.Common/CefRuntimeLoader.cs +++ b/CefGlue.Common/CefRuntimeLoader.cs @@ -6,13 +6,12 @@ using System.Reflection; using Xilium.CefGlue.Common.Handlers; using Xilium.CefGlue.Common.Shared; +using System.Runtime.InteropServices; namespace Xilium.CefGlue.Common { public static class CefRuntimeLoader { - private const string DefaultBrowserProcessDirectory = "CefGlueBrowserProcess"; - private static Action _delayedInitialization; public static void Initialize(CefSettings settings = null, KeyValuePair[] flags = null, CustomScheme[] customSchemes = null) @@ -90,12 +89,12 @@ private static void InternalInitialize(CefSettings settings = null, KeyValuePair private static IEnumerable GetSubProcessPaths(string baseDirectory) { - yield return Path.Combine(baseDirectory, DefaultBrowserProcessDirectory, BrowserProcessFileName); + yield return Path.Combine(baseDirectory, $"runtimes/{RuntimeInformation.RuntimeIdentifier}/native", BrowserProcessFileName); yield return Path.Combine(baseDirectory, BrowserProcessFileName); // The executing DLL might not be in the current domain directory (plugins scenario) baseDirectory = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - yield return Path.Combine(baseDirectory, DefaultBrowserProcessDirectory, BrowserProcessFileName); + yield return Path.Combine(baseDirectory, $"runtimes/{RuntimeInformation.RuntimeIdentifier}/native", BrowserProcessFileName); yield return Path.Combine(baseDirectory, BrowserProcessFileName); } diff --git a/CefGlue.Common/build/CefGlue.Common.props b/CefGlue.Common/build/CefGlue.Common.props index c59a49d0..f6cb1039 100644 --- a/CefGlue.Common/build/CefGlue.Common.props +++ b/CefGlue.Common/build/CefGlue.Common.props @@ -3,30 +3,44 @@ osx-x64;osx-arm64;win-x64;win-arm64;linux-x64;linux-arm64 - + win-x64 win-arm64 - win-x64 + win-x64 + linux-x64 linux-arm64 - linux-x64 + linux-x64 + - + osx-x64 osx-arm64 - osx-arm64 + osx-arm64 + - + $(RuntimeIdentifier) - - + + + + $(CefGlueBrowserProcessRuntimeDirectory)\%(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + false + + + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + false + - + + \ No newline at end of file diff --git a/CefGlue.Common/build/CefGlue.Common.targets b/CefGlue.Common/build/CefGlue.Common.targets index bfdcecb3..73bfba0a 100644 --- a/CefGlue.Common/build/CefGlue.Common.targets +++ b/CefGlue.Common/build/CefGlue.Common.targets @@ -1,40 +1,44 @@ - - CefGlueBrowserProcess + + + runtimes\$(CefGlueTargetPlatform)\native\ + + + $(OutputDirectory)\ false - $(OutputDirectory)%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) PreserveNewest PreserveNewest Included false - $(OutputDirectory)%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) PreserveNewest PreserveNewest Included false - $(OutputDirectory)$(CefGlueBrowserProcessDir)\%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) PreserveNewest PreserveNewest Included false - $(OutputDirectory)$(CefGlueBrowserProcessDir)\%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) PreserveNewest PreserveNewest Included false - $(OutputDirectory)$(CefGlueBrowserProcessDir)\%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) PreserveNewest PreserveNewest Included @@ -44,58 +48,44 @@ false - $(OutputDirectory)$(CefGlueBrowserProcessDir)\%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) PreserveNewest PreserveNewest Included false - $(OutputDirectory)$(CefGlueBrowserProcessDir)\%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)%(RecursiveDir)%(FileName)%(Extension) PreserveNewest PreserveNewest Included - - + + false - $(OutputDirectory)$(CefGlueBrowserProcessDir)\%(RecursiveDir)%(FileName)%(Extension) + $(CefGlueBrowserProcessRuntimeDirectory)locales\%(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + Included + + + false + $(CefGlueBrowserProcessRuntimeDirectory)locales\%(RecursiveDir)%(FileName)%(Extension) PreserveNewest - PreserveNewest Included - - - - - - false - $(OutputDirectory)%(FileName)%(Extension) - PreserveNewest - PreserveNewest - Included - - - + + <_CefGlueBrowserProcessFiles Include="$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\runtimes\$(CefGlueTargetPlatform)\native\Xilium.CefGlue.BrowserProcess.deps.json'))"/> + <_CefGlueBrowserProcessFiles Include="$([System.IO.Path]::GetFullPath('$(MSBuildThisFileDirectory)..\runtimes\$(CefGlueTargetPlatform)\native\Xilium.CefGlue.BrowserProcess.runtimeconfig.json'))"/> + + + - - false - runtimes\win-x64\native\locales\%(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - Included - - - false - runtimes\win-arm64\native\locales\%(RecursiveDir)%(FileName)%(Extension) - PreserveNewest - Included - + + diff --git a/CefGlue.CopyLocal.props b/CefGlue.CopyLocal.props index 7c31b9b1..d2df676a 100644 --- a/CefGlue.CopyLocal.props +++ b/CefGlue.CopyLocal.props @@ -11,7 +11,7 @@ linux-x64 linux-arm64 - + osx-x64 osx-arm64 @@ -22,12 +22,15 @@ osx-x64;osx-arm64;win-x64;win-arm64;linux-x64;linux-arm64 - - + + - - + + + false + $(OutputDirectory)runtimes\$(CefGlueTargetPlatform)\native\%(RecursiveDir)%(FileName)%(Extension) + PreserveNewest + \ No newline at end of file diff --git a/Directory.Build.props b/Directory.Build.props index 4db07904..a00b9b02 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -46,4 +46,4 @@ true - + \ No newline at end of file