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