Git Product home page Git Product logo

webview_csharp's Introduction

ReleaseBuild WebviewNative Nuget Webview Org Chat

sharpWebview

This repository contains battery included C# bindings for webview. It only supports x64 systems.

Webview

webview is a small C/C++ header only library for a cross platform access of a webview control. It uses Edge Chromium, with fallback to the 'old' Edge, on Windows, GTK Webkit on Linux and Cocoa Webkit on macOS. sharpWebview ships precompiled libraries for each system, ready to be used in your next C# project. This repository contains a cmake file to compile webview via Github Actions WebviewNative.

You are always able to see which webview version sharpWebview uses by looking into the CMakeLists.txt (GIT_TAG option in the FetchContent_Declare command). You can find all compiled libraries and used patches in the libs folder of this repository.

Get started

Linux Prerequisites

Please install the developer packages of webkit2gtk and libgtk on your machine.

With a distribution using apt run:

sudo apt install -y libwebkit2gtk-4.0-dev libgtk-3-dev

or DNF

sudo dnf install webkit2gtk4,0-devel.x86_64 gtk3-devel.x84_64

A basic example

Create a new .net core console application and add the SharpWebview nuget. Use the dotnet command line or the package management in Visual Studio, if you use it.

dotnet add package SharpWebview

Always add the [STAThread] attribute to the main method. This is necessary to work on windows at least.

[STAThread]
static void Main(string[] args)

To create a webview use a using block. This way you make sure that the native webview gets disposed correctly!

using SharpWebview;

[...]

using(var webview = new Webview())
{
}

To open a basic webview which is pointing to a wikipedia article use the following code:

using(var webview = new Webview())
{
    webview
        .SetTitle("The Hitchhicker")             
        .SetSize(1024, 768, WebviewHint.None)
        .SetSize(800, 600, WebviewHint.Min)
        .Navigate(new UrlContent("https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy_(novel)"))
        .Run();
}

The examples folder contains two basic projects. The Minimal projects shows you a basic example on how to create a cross platform webview and how to open a URL in it. Please have a look into the documented Program.cs. You are also able to use the HtmlContent to provide some HTML which the webview will render.

Run a webserver to serve a javascript application

Besides the UrlContent and HtmlContent, sharpWebview also provides a HostedContent. This content type creates a webserver to which the webview will automatically navigate.

To use this content it is necessary to create a app folder in your project. Every file you put into this folder will be served by the HostedContent. The DesktopApp project is an example of the usage of this content type. Don't forget to set the files in the app folder to copy always (see project file for an example).

HostedContent on Windows systems

The Edge webview uses a UWP application context on windows. UWP applications disallow loopbacks. For development purpose it is necessary to run the following command in an administrative command prompt:

CheckNetIsolation.exe LoopbackExempt -a -n="Microsoft.Win32WebViewHost_cw5n1h2txyewy"

This adds the Edge Webview Host to the exception list of this limitation. Your best bet for application distribution is to create an installer which executes this command on installation.

Application Distribution

Windows

The DesktopApp example contains a simple script to create a MSI installer. You are able to take the wix.bat and DesktopApp.wix files as a starting point for your application. To use the wix.bat you need to install the WIX Toolset.

I highly recommend to use scoop to install it. Scoop is a command line installer for easy installation of many different applications. Just run

scoop install wixtoolset

to install WIX. After this you should be able to execute the wix.bat to create a basic installer for the example DesktopApp.

webview_csharp's People

Contributors

fldx avatar fredolx avatar geaz avatar irishbruse avatar lemonify avatar milleniumbug avatar nickharvey2 avatar thechampagne avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

webview_csharp's Issues

I want to publish the application in a single file, but I have encountered a problem

Demo address

https://github.com/fldx/DesktopApp

Publish command

dotnet publish -c Release -p:EnableCompressionInSingleFile=true -p:PublishTrimmed=true

Running results

image

Compiled log

PS D:\VSProjects\DesktopApp> dotnet publish -c Release -p:PublishSingleFile=true -p:PublishTrimmed=true
MSBuild version 17.4.0+18d5aef85 for .NET
  正在确定要还原的项目…
  所有项目均是最新的,无法还原。
  DesktopApp -> D:\VSProjects\DesktopApp\bin\Release\net6.0\win-x64\DesktopApp.dll
  正在优化程序集以调整大小。此过程可能需要一段时间。
ILLink : Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.GetSchema(): Using member 'System.Data.DataSet.WriteXmlSchema(DataSet, XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break funct
ionality when trimming application code. DataSet.GetSchema uses TypeDescriptor and XmlSerialization underneath which are not trimming safe. Members from serialized types may be trimmed if not referenced directly. [D:\VSProjects\DesktopApp\Deskto
pApp.csproj]
ILLink : Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader): Using member 'System.Data.DataSet.ReadXmlSerializableInternal(XmlReader)' which has 'RequiresUnreferencedCodeAttribute' can
break functionality when trimming application code. DataSet.ReadXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [D:\VSProjects\DesktopApp\DesktopApp.csproj
]
ILLink : Trim analysis warning IL2026: System.Data.DataSet.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter): Using member 'System.Data.DataSet.WriteXmlInternal(XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break func
tionality when trimming application code. DataSet.WriteXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [D:\VSProjects\DesktopApp\DesktopApp.csproj]
ILLink : Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.GetSchema(): Using member 'System.Data.DataTable.GetXmlSchema()' which has 'RequiresUnreferencedCodeAttribute' can break functionality when tr
imming application code. DataTable.GetSchema uses TypeDescriptor and XmlSerialization underneath which are not trimming safe. Members from serialized types may be trimmed if not referenced directly. [D:\VSProjects\DesktopApp\DesktopApp.csproj]
ILLink : Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.ReadXml(XmlReader): Using member 'System.Data.DataTable.ReadXmlSerializableInternal(XmlReader)' which has 'RequiresUnreferencedCodeAttribute'
can break functionality when trimming application code. DataTable.ReadXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [D:\VSProjects\DesktopApp\DesktopApp.
csproj]
ILLink : Trim analysis warning IL2026: System.Data.DataTable.System.Xml.Serialization.IXmlSerializable.WriteXml(XmlWriter): Using member 'System.Data.DataTable.WriteXmlInternal(XmlWriter)' which has 'RequiresUnreferencedCodeAttribute' can break
functionality when trimming application code. DataTable.WriteXml uses XmlSerialization underneath which is not trimming safe. Members from serialized types may be trimmed if not referenced directly. [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.connections.abstractions\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Connections.Abstractions.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Connections.Abstractions' produced trim warn
ings. For more information see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.diagnostics\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Diagnostics.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Diagnostics' produced trim warnings. For more information see https://
aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.hosting\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Hosting.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Hosting' produced trim warnings. For more information see https://aka.ms/dotne
t-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.http.abstractions\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Abstractions.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Http.Abstractions' produced trim warnings. For more inform
ation see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.http.extensions\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Http.Extensions.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Http.Extensions' produced trim warnings. For more information
see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.routing.abstractions\2.2.0\lib\netstandard2.0\Microsoft.AspNetCore.Routing.Abstractions.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Routing.Abstractions' produced trim warnings. For mo
re information see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.aspnetcore.routing\2.2.0\lib\netcoreapp2.2\Microsoft.AspNetCore.Routing.dll : warning IL2104: Assembly 'Microsoft.AspNetCore.Routing' produced trim warnings. For more information see https://aka.ms/dotnet
-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.extensions.configuration.binder\2.2.0\lib\netstandard2.0\Microsoft.Extensions.Configuration.Binder.dll : warning IL2104: Assembly 'Microsoft.Extensions.Configuration.Binder' produced trim warnings. For mo
re information see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.extensions.dependencyinjection.abstractions\2.2.0\lib\netstandard2.0\Microsoft.Extensions.DependencyInjection.Abstractions.dll : warning IL2104: Assembly 'Microsoft.Extensions.DependencyInjection.Abstract
ions' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.extensions.dependencyinjection\2.2.0\lib\netcoreapp2.0\Microsoft.Extensions.DependencyInjection.dll : warning IL2104: Assembly 'Microsoft.Extensions.DependencyInjection' produced trim warnings. For more i
nformation see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.extensions.logging.eventsource\2.2.0\lib\netstandard2.0\Microsoft.Extensions.Logging.EventSource.dll : warning IL2104: Assembly 'Microsoft.Extensions.Logging.EventSource' produced trim warnings. For more
information see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.extensions.logging\2.2.0\lib\netstandard2.0\Microsoft.Extensions.Logging.dll : warning IL2104: Assembly 'Microsoft.Extensions.Logging' produced trim warnings. For more information see https://aka.ms/dotne
t-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\microsoft.extensions.options\2.2.0\lib\netstandard2.0\Microsoft.Extensions.Options.dll : warning IL2104: Assembly 'Microsoft.Extensions.Options' produced trim warnings. For more information see https://aka.ms/dotne
t-illink/libraries [D:\VSProjects\DesktopApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\newtonsoft.json\11.0.2\lib\netstandard2.0\Newtonsoft.Json.dll : warning IL2104: Assembly 'Newtonsoft.Json' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\Desk
topApp\DesktopApp.csproj]
C:\Users\Admin\.nuget\packages\sharpwebview\0.7.0\lib\netstandard2.1\SharpWebview.dll : warning IL2104: Assembly 'SharpWebview' produced trim warnings. For more information see https://aka.ms/dotnet-illink/libraries [D:\VSProjects\DesktopApp\Des
ktopApp.csproj]
  DesktopApp -> D:\VSProjects\DesktopApp\bin\Release\net6.0\win-x64\publish\

Only working on canary

Hi
I'm pretty sure I tested this a few weeks ago using edge 86.0.622.51 and I thought it worked just fine. Since then I seem to only be able to get this to run on edge canary.

Currently using the newest edge Version 86.0.622.61 (Official build) (64-bit) and cant seem to get it working. It opens a window but behaves like it failed to instantiate the webview.

Two way binding

Hi, first I just wanna say, I love this project and started to seriously look into it.

I've already made binding work from JS to .Net (so I can call .Net logic from JS), but I haven't really found in the Readme or in examples how to do the opposite. How would one go about calling a JS function from .Net code? Is that what the Dispatch method is for? Or is there a way to bind functions the other way around?

Thank for your help and keep up the good work :)

[LINUX] Unable to load shared library 'webview' or one of its dependencies. libwebview: cannot open shared object file: No such file or directory

Hi,

Just trying the example found in the Readme. Compiles correctly but then it says:

Exception has occurred: CLR/System.DllNotFoundException
An unhandled exception of type 'System.DllNotFoundException' occurred in SharpWebview.dll: 'Unable to load shared library 'webview' or one of its dependencies. In order to help diagnose loading problems, consider setting the LD_DEBUG environment variable: libwebview: cannot open shared object file: No such file or directory'
   at SharpWebview.Bindings.webview_create(Int32 debug, IntPtr window)
   at SharpWebview.Webview..ctor(Boolean debug, Boolean interceptExternalLinks)
   at App.Program.Main(String[] args) in Program.cs:line 13

How do I make this work then? I had expected that the nuget package included bindings for Win/Linux/OSX?

The bindings and libs seem to exist though. I'm stumped.
image

webview.Return fails to resolve when passed a primitive string

I'm not sure if this is intended but if you pass something like

webview.Return(id, RPCResult.Success, JsonConvert.SerializeObject(true));

OR

webview.Return(id, RPCResult.Success, "yup");

The promise hangs and is not resolved or rejected. I think either just the string should be passed as a primitive or an exception should be thrown. Right now I assume some sort of json parser is silently failing.

I have written helper functions for my self to prevent a silly error like this

public void ResolvePromise(string id, object data)
        {
            Webview webview = this;
            string jsonData = "{ data: " + JsonConvert.SerializeObject(data) + "}";

            webview.Return(id, RPCResult.Success, jsonData);
        }

Deprecated and/or vulnerable dependencies

Hello there!

There are some packages that are considered and marked as deprecated and/or vulnerable. Specifically these two:

  • Microsoft.AspNetCore.Server.IIS (there is a newer version without vulnerabilities, but still deprecated and not being actively developed anymore)
  • Newtonsoft.Json (based on my observations it is safe to upgrade to latest version)

However, according to official deprecation list, whole Microsoft.AspNetCore runtime is being deprecated (which makes sense, .NET Core is not supported since December 2022) and all these nugets should be natively part of the .NET 6+ if I am not mistaken. Upgrade to at least .NET 6 might be best solution.

Application crash. Edge Chromium

Hello! I am using Windows 10 (19041.685) with new Edge Chromium (87.0.664.57). I have created a test project with SharpWebview but the application crashes(screenshot below). Loopback is also enabled on my machine.
Do you have any idea how to fix this?
Error

Only working on canary

Hi
I'm pretty sure I tested this a few weeks ago using edge 86.0.622.51 and I thought it worked just fine. Since then I seem to only be able to get this to run on edge canary.

Currently using the newest edge Version 86.0.622.61 (Official build) (64-bit) and cant seem to get it working. It opens a window but behaves like it failed to instantiate the webview.

Thank your for your help and maintaining c# bindings for this.

Right click context menu issue

If I use normal edge (Version 86.0.622.63 (Official build) (64-bit)) right clicking does not open a context menu.
If I use canary edge I can right click and use dev tools to debug js code in the webview/browser.

It would be nice to control this for production purposes, but also I'm not sure why one works and one does not. The webview takes a debug boolean but this didn't seem to have any effect on the browser context menu or dev tool access in the webview. I assume that's what the intention is tho.

https://godoc.org/github.com/zserge/webview#New

Run async eval?

[STAThread]
		static async void Uwu()
		{
			using (var webview = new Webview())
			{
				webview
					.SetTitle("test")
					.SetSize(1024, 768, WebviewHint.None)
					.SetSize(800, 600, WebviewHint.Min)

					.Bind("evaltest", (id, req) =>
					{
						Thread.Sleep(5000);
						Console.WriteLine(req);
						// Executes the javascript on the webview
						webview.Evaluate("console.log('The anwser is ' + window.x);");
						// And returns a successful promise result to the javascript function, which executed the 'evalTest'
						webview.Return(id, RPCResult.Success, "{ result: 'We always knew it!' }");
					})
					.Navigate(new UrlContent("http://127.0.0.1:5500/test.html"))
					.Run();
			}
		}

I'm trying to what features working or not.
Since it is Single Threaded, The Thread.Sleep(5000) will just froze the window.
how can we wait a few seconds and give result like Thread.Sleep(5000);?

[requirement] support Microsoft webview2 fixed version mode

Purpose:

deploy .NET core webview_csharp application with self-include a fixed version WebView2 runtime.

Trouble:

webwiew windows implement need allow to pass browserExecutableFolder to CreateCoreWebView2EnvironmentWithOptions or auto detect some default subfolder like webview2. which is not possible now. the code 
ref:
1. https://github.com/webview/webview/blob/master/webview.h#L871
2. https://docs.microsoft.com/en-us/microsoft-edge/webview2/reference/win32/webview2-idl?view=webview2-1.0.622.22#createcorewebview2environmentwithoptions

Why this will extremely useful?

As .NET  5 near to release,  Microsoft and .NET is cool again now, the single file release mode is cool, but once you depend webview2 runtime, you must provide an installer or depend on OS's install of Edge Browser, which is out of developer's control sometime.
 
I think webView + asp.net Blazor will be great solution for cross platform desktop application, although Microsoft's provide their full stack to these solutions, but they seems always under refactor & reArchitecture & refusion & competition, like https://github.com/xamarin/MobileBlazorBindings, https://github.com/dotnet/maui, https://github.com/Clancey/Comet, when Microsoft find the perfect solution and implement it, the developer depends on Microsoft lost all the chance and died:)

But we must say, some core part of Microsoft is cool, like .NET,  C#

, asp.net blazer, Edge itself, we can just mix the most reliable part of it, I have an Idea that Use WebView as asp.net Web Application container and show asp.net blazer content in it. use webview to show the website but not the trick way of mobilebinding as that's a work in progress product( I do not know how about their relation to maui), but balzor is the core foundation part which maybe more reliable and stable.

ref:

  1. #4
  2. dotnet/MobileBlazorBindings#202
  3. MicrosoftEdge/WebView2Feedback#341
  4. https://docs.microsoft.com/en-us/microsoft-edge/webview2/concepts/distribution#fixed-version-distribution-mode

[Question] How to display html from string

It seems the "official" way to do this is to call

.Navigate(new HtmlContent(myHtmlString)),

however, that throws and exception:

Unhandled exception. System.UriFormatException: Invalid URI: The Uri string is too long.
   at System.UriHelper.EscapeString(String input, Int32 start, Int32 end, Char[] dest, Int32& destPos, Boolean isUriString, Char force1, Char force2, Char rsvd)
   at System.Uri.EscapeDataString(String stringToEscape)
   at SharpWebview.Content.HtmlContent.ToWebviewUrl()
   at SharpWebview.Webview.Navigate(IWebviewContent webviewContent)

Seems the html content is passed in as Url instead of loading the html directly?

Using https://github.com/webview-cs/webview-cs I was able to directly call Content.FromHtml(myHtmlString) which worked but those bindings seem to not be "official" so I'd like to use this repo here.

WebvView windows hangs on some machines. Visual Studio seems to make it work.

On my work machine (Windows 10 Pro) everything works fine.
On my home machine (Windows 10 Home) the window was not responding and the app froze. I then took the code, built and ran it on this machine and WebView started working perfectly. It also ran fine outside of Visual Studio, and I can't get it to stop working. I tried reinstalling Visual Studio, Edge and the runtime, but it still works fine. Something about running it in VS jolted it to life.
It also doesn't work on a colleague's PC so it's not an isolated issue to my machine.
Seems to be a couple of recent issues in the other repo.
webview/webview#491
webview/webview#490

Serving DLLs gives a 404

Trying to serve a Blazor WebAssembly app gives 404s when the app tries to serve DLL files

image

Files of other types such as .js work correctly. Is there something that can be configured, maybe mimetypes?

webview.Evaluate doesn't work inside event handlers

It seems like webview.Evaluate silently fails when called inside a event handler. Here is a basic example reproducing the issue. Not sure if this is a C# binding issue or the core webview project.

using System;
using System.Timers;
using SharpWebview;
using SharpWebview.Content;

namespace Minimal
{
    class Program
    {
        // Set the application to Single Threaded Apartment
        // Otherwise the webview won't work on windows at least
        [STAThread]
        static void Main(string[] args)
        {
            // Wrap the usage of the webview into a using block
            // Otherwise the native window will not get disposed correctly
            using(var webview = new Webview(true))
            {
                // Create a timer with a two second interval.
                Timer aTimer = new Timer(2000);
                // Hook up the Elapsed event for the timer. 
                aTimer.Elapsed += (Object source, ElapsedEventArgs e) => {
                    try
                    {
                        Console.WriteLine("The Elapsed event was raised at {0:HH:mm:ss.fff}",
                                          e.SignalTime);

                        webview.Evaluate("console.log('test')");
                    }
                    catch (Exception error) {
                        Console.WriteLine(error.Message);
                    }
                };
                aTimer.AutoReset = true;
                aTimer.Start();

                webview
                    // Set the title of the application window
                    .SetTitle("The Hitchhicker")
                    // Set the start size of the window                
                    .SetSize(1024, 768, WebviewHint.None)
                    // Set the minimum size of the window
                    .SetSize(800, 600, WebviewHint.Min)
                    // This script gets executed after navigating to the url
                    .InitScript("window.x = 42;")
                    // Bind a c# function to the webview - Accessible with the name "evalTest"
                    .Bind("evalTest", (id, req) =>
                    {
                        // Executes the javascript on the webview
                        webview.Evaluate("console.log('The anwser is ' + window.x);");
                        // And returns a successful promise result to the javascript function, which executed the 'evalTest'
                        webview.Return(id, RPCResult.Success, "{ result: 'We always knew it!' }");
                    })
                    // Navigate to this url on start
                    .Navigate(new UrlContent("https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy_(novel)"))
                    // Run the webview loop
                    .Run();
            }
        }
    }
}

Unable to find an entry point named 'webview_create' in shared library 'webview'.

Description

Just created a new project via:

dotnet new console -lang c# -n WebviewTest -o WebviewTest
cd WebviewTest
dotnet add package SharpWebview

Program.cs:

using SharpWebview;
using SharpWebview.Content;

class Program
{
    [STAThread]
    static void Main(string[] args)
    {
        using var webview = new Webview();
        webview
            .SetTitle("The Hitchhicker")
            .SetSize(1024, 768, WebviewHint.None)
            .SetSize(800, 600, WebviewHint.Min)
            .Navigate(new UrlContent("https://en.wikipedia.org/wiki/The_Hitchhiker%27s_Guide_to_the_Galaxy_(novel)"))
            .Run();
    }
}

When I run DYLD_PRINT_LIBRARIES=1 dotnet run this is printed:

dyld[3530]: <E621F4C8-AEE9-3B82-9BAB-819517377CBA> /usr/local/share/dotnet/dotnet
dyld[3530]: <F165F001-69BD-338F-A4E1-CD6081B4F94C> /usr/lib/libc++.1.dylib
dyld[3530]: <37AC8FA5-A17E-33A7-8999-31ED6834334E> /usr/lib/libSystem.B.dylib
dyld[3530]: <540088B6-CC81-381F-901C-5632F4A73C45> /usr/lib/libc++abi.dylib
dyld[3530]: <22B0DDF8-19B1-3F56-973C-3F639D4564AF> /usr/lib/system/libcache.dylib
dyld[3530]: <7ACD9142-CC3E-3F0F-AD9F-F87C302D573E> /usr/lib/system/libcommonCrypto.dylib
dyld[3530]: <8FFA49FC-3CF7-3EC6-8A48-ED197724041B> /usr/lib/system/libcompiler_rt.dylib
dyld[3530]: <E7763C71-16EC-3BB4-847D-102DE8458168> /usr/lib/system/libcopyfile.dylib
dyld[3530]: <62B5D2A2-7CF7-3D1B-96EC-0E8898A7A0DA> /usr/lib/system/libcorecrypto.dylib
dyld[3530]: <3A9E9A1E-72B6-3F66-AA17-D955384C1A39> /usr/lib/system/libdispatch.dylib
dyld[3530]: <09AB3723-C26D-3762-93BA-98E9C38B89C1> /usr/lib/system/libdyld.dylib
dyld[3530]: <A5A2F70A-E083-3298-88C2-AD550AE48370> /usr/lib/system/libkeymgr.dylib
dyld[3530]: <83C8661F-D9F2-3931-952C-6247173649FB> /usr/lib/system/libmacho.dylib
dyld[3530]: <0F140B2F-8214-30B8-9CDA-7F0DB8DE13FE> /usr/lib/system/libquarantine.dylib
dyld[3530]: <DCBB4D26-765D-3FE9-825D-40CB4CBD2D6A> /usr/lib/system/libremovefile.dylib
dyld[3530]: <1B8BB485-301C-3D2C-88C6-30A36748F370> /usr/lib/system/libsystem_asl.dylib
dyld[3530]: <B7B7480C-F144-3501-8B95-AF95ACEF7BED> /usr/lib/system/libsystem_blocks.dylib
dyld[3530]: <00FC01C7-36BC-3193-86A3-5C03046B45FB> /usr/lib/system/libsystem_c.dylib
dyld[3530]: <9D3DA336-7A42-33CA-BB73-992322C43A79> /usr/lib/system/libsystem_collections.dylib
dyld[3530]: <E7DED043-0BA8-309E-A2B8-CEF538EDB42C> /usr/lib/system/libsystem_configuration.dylib
dyld[3530]: <A52DED3E-8E83-3E73-81EE-D6652530C896> /usr/lib/system/libsystem_containermanager.dylib
dyld[3530]: <862B5C1A-18B9-34F3-92EE-EF7097E231B7> /usr/lib/system/libsystem_coreservices.dylib
dyld[3530]: <3E100E89-39E4-3EB8-B107-74F2128EF205> /usr/lib/system/libsystem_darwin.dylib
dyld[3530]: <B09D4026-65C0-3697-A061-F9EFDD472524> /usr/lib/system/libsystem_dnssd.dylib
dyld[3530]: <D945ABFC-8F6D-355B-A72B-530E52C1AC9B> /usr/lib/system/libsystem_featureflags.dylib
dyld[3530]: <84ADA565-384C-3208-A670-861402A357CE> /usr/lib/system/libsystem_info.dylib
dyld[3530]: <2F0D5F29-693F-36A2-8C57-0D6E1919586B> /usr/lib/system/libsystem_m.dylib
dyld[3530]: <0E4E31E8-030C-3527-94A1-42E266F3DF58> /usr/lib/system/libsystem_malloc.dylib
dyld[3530]: <8338FE13-BF44-3500-A07E-3CCA493830AB> /usr/lib/system/libsystem_networkextension.dylib
dyld[3530]: <8B7B82AA-4714-3EAF-9DED-EBFA363295EB> /usr/lib/system/libsystem_notify.dylib
dyld[3530]: <CDC2BAC8-4DF7-39B3-BE4E-38282F077676> /usr/lib/system/libsystem_product_info_filter.dylib
dyld[3530]: <1485320D-2587-35BA-AAD4-441D6C39C98C> /usr/lib/system/libsystem_sandbox.dylib
dyld[3530]: <6A8FEE92-740F-3963-8F1B-98112A619010> /usr/lib/system/libsystem_secinit.dylib
dyld[3530]: <C8B3081A-5081-3A99-BBE3-01413DE444C6> /usr/lib/system/libsystem_kernel.dylib
dyld[3530]: <EF6555F4-7A8E-3E51-9B40-5381482DEE4D> /usr/lib/system/libsystem_platform.dylib
dyld[3530]: <ED328B18-EEEF-3B15-8858-798B19B0C2CD> /usr/lib/system/libsystem_pthread.dylib
dyld[3530]: <843F619F-8A94-378D-B840-CB8D2CABB98E> /usr/lib/system/libsystem_symptoms.dylib
dyld[3530]: <CB31B40D-D932-3628-A4DC-DC2135F9AECE> /usr/lib/system/libsystem_trace.dylib
dyld[3530]: <04A666D5-2FB4-3D5A-82F8-0EAB2E35EB91> /usr/lib/system/libunwind.dylib
dyld[3530]: <80733A24-F268-3E74-87FD-C043429512CC> /usr/lib/system/libxpc.dylib
dyld[3530]: <8A930227-747E-381F-BB29-2DFE267A84F7> /usr/lib/libobjc.A.dylib
dyld[3530]: <9A48F3CB-EC1B-3783-96F7-D06867E3C21A> /usr/lib/liboah.dylib
dyld[3530]: <A1E351F4-0899-37E7-8C7F-FE0EC4296ABD> /usr/local/share/dotnet/host/fxr/6.0.1/libhostfxr.dylib
dyld[3530]: <5CF607F1-4227-3672-AB56-24D7721D7B88> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libhostpolicy.dylib
dyld[3530]: <DCD8897C-CE9D-31A3-938C-26CA23AD2C76> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libcoreclr.dylib
dyld[3530]: <F5EA9592-4EF9-3D35-B23D-5C21283ACC52> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
dyld[3530]: <3213B59D-649B-3842-95CA-6AE6F5046302> /usr/lib/libfakelink.dylib
dyld[3530]: <D828584A-44A9-3EE7-8AF9-28C71446B7AD> /usr/lib/libicucore.A.dylib
dyld[3530]: <9D06A4E0-AD83-340C-B73D-0906E37A9429> /System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking
dyld[3530]: <85B31D2E-B43B-385F-A708-B01EA66A03B8> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
dyld[3530]: <C82C3FB0-E798-3BC6-8B67-8A806089B2CA> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
dyld[3530]: <7B09A865-986F-39EE-9920-131586E5589E> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
dyld[3530]: <7F0860C4-BB15-3C52-AF44-26A38DAB1C73> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
dyld[3530]: <16AFCED7-B7D0-3151-841E-9110665CD0CF> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
dyld[3530]: <54E58714-6DBD-3BE0-A86B-81F208F3B724> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
dyld[3530]: <8B551A04-44E8-3C42-9C41-70D36E9BE511> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
dyld[3530]: <9545DA42-F6A6-311E-95FE-6745BD9D552D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
dyld[3530]: <DB84BEE2-C819-32F2-81AA-315A87713386> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
dyld[3530]: <FD3495B6-E31B-3487-9276-D12EBE660A76> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
dyld[3530]: <58F90D2C-65C4-317F-B795-06D998B2D34C> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
dyld[3530]: <3CC96646-6339-3D08-95FE-4602FD968412> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
dyld[3530]: <E5EDAFBB-254F-33C3-8BCE-FC8571391677> /System/Library/Frameworks/Security.framework/Versions/A/Security
dyld[3530]: <17311292-FF5E-3412-8935-3A67599869B2> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
dyld[3530]: <3C6FB7FC-879F-3314-875D-67BCC977F7E7> /usr/lib/libapple_nghttp2.dylib
dyld[3530]: <4B5E75D5-AAA8-39AF-B622-4A7F3C7A282A> /usr/lib/libnetwork.dylib
dyld[3530]: <5A706F41-18B4-34C8-BDD2-9684CCB5D04C> /usr/lib/libsqlite3.dylib
dyld[3530]: <1964A883-D1E6-3C2A-9522-9DBFDB4C6A77> /usr/lib/libz.1.dylib
dyld[3530]: <CD7CDF11-986E-3754-8011-E628C3BE8380> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
dyld[3530]: <A248CAEF-79F7-356F-A968-6655A0B69E2F> /usr/lib/libDiagnosticMessagesClient.dylib
dyld[3530]: <C07AE2DF-BDB2-3888-A617-BF03FCF5794E> /usr/lib/libenergytrace.dylib
dyld[3530]: <1504EEC9-0B0A-3572-9D5D-1BB275C9024B> /usr/lib/libbsm.0.dylib
dyld[3530]: <9F2F16DB-6675-3A64-B799-F9883A8BAB37> /usr/lib/system/libkxld.dylib
dyld[3530]: <B5505FEB-F12A-375E-9FB5-91BB689B2BCF> /usr/lib/libCoreEntitlements.dylib
dyld[3530]: <D003F4DF-C36F-3A0F-B27B-1FF9F2F91AE3> /usr/lib/libMobileGestalt.dylib
dyld[3530]: <D9D483AD-310C-3342-8A63-1334E40066A7> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
dyld[3530]: <33839A68-3EDA-3BEA-8E82-15AFD2672974> /usr/lib/libcoretls.dylib
dyld[3530]: <E427AE7A-3A4A-3D33-A9FF-EC6C1E734EEE> /usr/lib/libcoretls_cfhelpers.dylib
dyld[3530]: <FB7B5A11-1B3C-348E-B7AD-9362B7DFC295> /usr/lib/libpam.2.dylib
dyld[3530]: <0835F323-DBF5-3C7E-8A79-365ED66679C9> /usr/lib/libxar.1.dylib
dyld[3530]: <3CE3264F-FF3E-3B40-B674-6F54B4B03B7A> /System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout
dyld[3530]: <5F4FBCD5-4CD0-3A14-AC04-DC456E8BADE8> /usr/lib/libcompression.dylib
dyld[3530]: <EB02888E-3096-39D6-87E2-DB7C65A8260E> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
dyld[3530]: <42A85931-7983-3D80-AE3B-F2CEA1953E46> /usr/lib/libarchive.2.dylib
dyld[3530]: <070CA6D8-7423-3D4B-BA5C-636EB569940D> /usr/lib/libxml2.2.dylib
dyld[3530]: <0E23C2BB-D054-30EE-9079-2580B57A58B7> /usr/lib/liblangid.dylib
dyld[3530]: <6E935C94-9000-389C-A476-5C0E1067F5FA> /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo
dyld[3530]: <A0C89A4D-FA2B-3DAC-A534-0A138608293F> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer
dyld[3530]: <16DA354C-3296-3DD5-8B70-BB5B5DE7E3AD> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
dyld[3530]: <7D90D6F2-B809-3E0C-B33A-E501A059486D> /usr/lib/libpcap.A.dylib
dyld[3530]: <4ED3451E-B92C-3E9C-8FB3-B82CAB3A3682> /usr/lib/libdns_services.dylib
dyld[3530]: <4B6FDC15-DDA1-3553-89F2-69A09B32356E> /usr/lib/liblzma.5.dylib
dyld[3530]: <A2998CE7-8983-3C2C-A061-A82F2358C327> /usr/lib/libbz2.1.0.dylib
dyld[3530]: <BB9AD7EB-5447-30AF-BA5B-7F014B32D044> /usr/lib/libiconv.2.dylib
dyld[3530]: <4BF8FE1F-C500-3289-BB8E-D9095A12E8EF> /usr/lib/libcharset.1.dylib
dyld[3530]: <80F3EB82-5AB8-324E-A729-EEC16369CFB7> /usr/lib/libCheckFix.dylib
dyld[3530]: <3313DD91-7C48-3C3A-986E-F223270B647E> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
dyld[3530]: <628BC637-56E7-3E29-BA43-189AA908F56A> /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
dyld[3530]: <E725E275-3ABF-3B54-B81E-3CCB0F82D68F> /System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities
dyld[3530]: <3EDE4121-EB32-341B-9364-5A873874E3CA> /usr/lib/libmecabra.dylib
dyld[3530]: <600A7FB5-32B2-3FB9-9788-0A622E9EFBE7> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
dyld[3530]: <A812BDFD-0A24-374C-B603-0061C72BDDE3> /usr/lib/libmecab.dylib
dyld[3530]: <FDBB89D1-0D9C-34E1-AEE8-9D8BC90FD7BC> /usr/lib/libCRFSuite.dylib
dyld[3530]: <CEE40A88-878C-3C26-8D83-5B86B7BE5A3D> /usr/lib/libgermantok.dylib
dyld[3530]: <F095FA8E-4E4C-3EFE-86B2-C70535BC19A1> /usr/lib/libThaiTokenizer.dylib
dyld[3530]: <EE8A6440-1407-39A5-A6D0-98A95A0727AC> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
dyld[3530]: <3597336D-1C1A-31BF-A033-F991BAB5D3E3> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
dyld[3530]: <E63F023F-903D-331B-823C-EA23842858B9> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
dyld[3530]: <575A5DBF-4C4A-3FCD-8C78-5C49A1461BEA> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
dyld[3530]: <A416CA6A-AF03-3853-9326-A5F55C47DDFB> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
dyld[3530]: <98224EE2-9855-3B51-9CF7-45F4C4B57D9B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
dyld[3530]: <CFC87BC3-C056-3D84-9575-8AF4F9B90739> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
dyld[3530]: <69A2A96A-00C4-3060-ADC5-B95904B51F94> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
dyld[3530]: <982D8311-129E-3496-B06C-C0B4AB0CE27C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
dyld[3530]: <B6AC5D38-DB1D-340A-A367-CFA7AE775B7C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
dyld[3530]: <33F06C3B-0B04-3EFE-8771-0D5BCFFAD15B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
dyld[3530]: <BF66A148-79E0-3AC9-B3A5-E222D83CD5F9> /System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics
dyld[3530]: <36C9CF4B-F8EA-3C44-8556-BE74D56AA9B6> /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
dyld[3530]: <1239F60A-6F70-342F-9DC8-E5400BE4C495> /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
dyld[3530]: <02C03973-C73B-34EA-9EA0-E3B13F1E43BB> /usr/lib/libChineseTokenizer.dylib
dyld[3530]: <B6E4B8F5-E3D9-376D-8FE0-0615613D16A1> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
dyld[3530]: <55086D43-5E73-3D79-B528-BA09935F9FF0> /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
dyld[3530]: <2C1AF22C-6685-387E-AC98-DDA5F9373BFD> /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
dyld[3530]: <599926AB-D0AD-3499-AB68-987A3E64E847> /usr/lib/libcmph.dylib
dyld[3530]: <F630DED1-EE8F-3836-B0C6-D51FFC117BF3> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
dyld[3530]: <C3AD2404-308F-3A6E-8A53-325628F61AF1> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
dyld[3530]: <2A2B75F3-CFB8-352B-825C-8C9A739734CA> /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
dyld[3530]: <C35495F8-0591-328E-BFD1-C79AFD4B7BF6> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
dyld[3530]: <2A954141-417F-3E06-97C7-D79B4FFAFC8F> /usr/lib/libutil.dylib
dyld[3530]: <6CD5B18E-E756-3FC2-8BF3-6530B2CF7EEA> /System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore
dyld[3530]: <2DBB59FE-1BB1-3950-8656-1627C69EDD69> /usr/lib/libapp_launch_measurement.dylib
dyld[3530]: <A1216D29-43DF-3D12-B5D6-BB86DA036F80> /usr/lib/libxslt.1.dylib
dyld[3530]: <7064911F-9A95-33B9-855A-DE025E7BF4EE> /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
dyld[3530]: <60477550-BC7D-38D9-9B9B-49047FEF3569> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libclrjit.dylib
dyld[3530]: <2C1553F7-62B4-36D7-B354-5B3C24CC5F1B> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libSystem.Native.dylib
dyld[3530]: <DADB4897-26BB-377A-BAEF-F03344B30D75> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libSystem.Security.Cryptography.Native.Apple.dylib
dyld[3530]: <1F424DFE-EDD7-3E63-BA87-79A0E7715062> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libSystem.IO.Compression.Native.dylib
dyld[3533]: <ABACC930-B0B9-3514-85B8-492EB262F562> /Users/foobar/workspace/csharp/Webview/bin/Debug/net6.0/Webview
dyld[3533]: <F165F001-69BD-338F-A4E1-CD6081B4F94C> /usr/lib/libc++.1.dylib
dyld[3533]: <37AC8FA5-A17E-33A7-8999-31ED6834334E> /usr/lib/libSystem.B.dylib
dyld[3533]: <540088B6-CC81-381F-901C-5632F4A73C45> /usr/lib/libc++abi.dylib
dyld[3533]: <22B0DDF8-19B1-3F56-973C-3F639D4564AF> /usr/lib/system/libcache.dylib
dyld[3533]: <7ACD9142-CC3E-3F0F-AD9F-F87C302D573E> /usr/lib/system/libcommonCrypto.dylib
dyld[3533]: <8FFA49FC-3CF7-3EC6-8A48-ED197724041B> /usr/lib/system/libcompiler_rt.dylib
dyld[3533]: <E7763C71-16EC-3BB4-847D-102DE8458168> /usr/lib/system/libcopyfile.dylib
dyld[3533]: <62B5D2A2-7CF7-3D1B-96EC-0E8898A7A0DA> /usr/lib/system/libcorecrypto.dylib
dyld[3533]: <3A9E9A1E-72B6-3F66-AA17-D955384C1A39> /usr/lib/system/libdispatch.dylib
dyld[3533]: <09AB3723-C26D-3762-93BA-98E9C38B89C1> /usr/lib/system/libdyld.dylib
dyld[3533]: <A5A2F70A-E083-3298-88C2-AD550AE48370> /usr/lib/system/libkeymgr.dylib
dyld[3533]: <83C8661F-D9F2-3931-952C-6247173649FB> /usr/lib/system/libmacho.dylib
dyld[3533]: <0F140B2F-8214-30B8-9CDA-7F0DB8DE13FE> /usr/lib/system/libquarantine.dylib
dyld[3533]: <DCBB4D26-765D-3FE9-825D-40CB4CBD2D6A> /usr/lib/system/libremovefile.dylib
dyld[3533]: <1B8BB485-301C-3D2C-88C6-30A36748F370> /usr/lib/system/libsystem_asl.dylib
dyld[3533]: <B7B7480C-F144-3501-8B95-AF95ACEF7BED> /usr/lib/system/libsystem_blocks.dylib
dyld[3533]: <00FC01C7-36BC-3193-86A3-5C03046B45FB> /usr/lib/system/libsystem_c.dylib
dyld[3533]: <9D3DA336-7A42-33CA-BB73-992322C43A79> /usr/lib/system/libsystem_collections.dylib
dyld[3533]: <E7DED043-0BA8-309E-A2B8-CEF538EDB42C> /usr/lib/system/libsystem_configuration.dylib
dyld[3533]: <A52DED3E-8E83-3E73-81EE-D6652530C896> /usr/lib/system/libsystem_containermanager.dylib
dyld[3533]: <862B5C1A-18B9-34F3-92EE-EF7097E231B7> /usr/lib/system/libsystem_coreservices.dylib
dyld[3533]: <3E100E89-39E4-3EB8-B107-74F2128EF205> /usr/lib/system/libsystem_darwin.dylib
dyld[3533]: <B09D4026-65C0-3697-A061-F9EFDD472524> /usr/lib/system/libsystem_dnssd.dylib
dyld[3533]: <D945ABFC-8F6D-355B-A72B-530E52C1AC9B> /usr/lib/system/libsystem_featureflags.dylib
dyld[3533]: <84ADA565-384C-3208-A670-861402A357CE> /usr/lib/system/libsystem_info.dylib
dyld[3533]: <2F0D5F29-693F-36A2-8C57-0D6E1919586B> /usr/lib/system/libsystem_m.dylib
dyld[3533]: <0E4E31E8-030C-3527-94A1-42E266F3DF58> /usr/lib/system/libsystem_malloc.dylib
dyld[3533]: <8338FE13-BF44-3500-A07E-3CCA493830AB> /usr/lib/system/libsystem_networkextension.dylib
dyld[3533]: <8B7B82AA-4714-3EAF-9DED-EBFA363295EB> /usr/lib/system/libsystem_notify.dylib
dyld[3533]: <CDC2BAC8-4DF7-39B3-BE4E-38282F077676> /usr/lib/system/libsystem_product_info_filter.dylib
dyld[3533]: <1485320D-2587-35BA-AAD4-441D6C39C98C> /usr/lib/system/libsystem_sandbox.dylib
dyld[3533]: <6A8FEE92-740F-3963-8F1B-98112A619010> /usr/lib/system/libsystem_secinit.dylib
dyld[3533]: <C8B3081A-5081-3A99-BBE3-01413DE444C6> /usr/lib/system/libsystem_kernel.dylib
dyld[3533]: <EF6555F4-7A8E-3E51-9B40-5381482DEE4D> /usr/lib/system/libsystem_platform.dylib
dyld[3533]: <ED328B18-EEEF-3B15-8858-798B19B0C2CD> /usr/lib/system/libsystem_pthread.dylib
dyld[3533]: <843F619F-8A94-378D-B840-CB8D2CABB98E> /usr/lib/system/libsystem_symptoms.dylib
dyld[3533]: <CB31B40D-D932-3628-A4DC-DC2135F9AECE> /usr/lib/system/libsystem_trace.dylib
dyld[3533]: <04A666D5-2FB4-3D5A-82F8-0EAB2E35EB91> /usr/lib/system/libunwind.dylib
dyld[3533]: <80733A24-F268-3E74-87FD-C043429512CC> /usr/lib/system/libxpc.dylib
dyld[3533]: <8A930227-747E-381F-BB29-2DFE267A84F7> /usr/lib/libobjc.A.dylib
dyld[3533]: <9A48F3CB-EC1B-3783-96F7-D06867E3C21A> /usr/lib/liboah.dylib
dyld[3533]: <A1E351F4-0899-37E7-8C7F-FE0EC4296ABD> /usr/local/share/dotnet/host/fxr/6.0.1/libhostfxr.dylib
dyld[3533]: <5CF607F1-4227-3672-AB56-24D7721D7B88> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libhostpolicy.dylib
dyld[3533]: <DCD8897C-CE9D-31A3-938C-26CA23AD2C76> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libcoreclr.dylib
dyld[3533]: <F5EA9592-4EF9-3D35-B23D-5C21283ACC52> /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation
dyld[3533]: <3213B59D-649B-3842-95CA-6AE6F5046302> /usr/lib/libfakelink.dylib
dyld[3533]: <D828584A-44A9-3EE7-8AF9-28C71446B7AD> /usr/lib/libicucore.A.dylib
dyld[3533]: <9D06A4E0-AD83-340C-B73D-0906E37A9429> /System/Library/PrivateFrameworks/SoftLinking.framework/Versions/A/SoftLinking
dyld[3533]: <85B31D2E-B43B-385F-A708-B01EA66A03B8> /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
dyld[3533]: <C82C3FB0-E798-3BC6-8B67-8A806089B2CA> /System/Library/Frameworks/CFNetwork.framework/Versions/A/CFNetwork
dyld[3533]: <7B09A865-986F-39EE-9920-131586E5589E> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/FSEvents.framework/Versions/A/FSEvents
dyld[3533]: <7F0860C4-BB15-3C52-AF44-26A38DAB1C73> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/CarbonCore.framework/Versions/A/CarbonCore
dyld[3533]: <16AFCED7-B7D0-3151-841E-9110665CD0CF> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/Metadata.framework/Versions/A/Metadata
dyld[3533]: <54E58714-6DBD-3BE0-A86B-81F208F3B724> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/OSServices.framework/Versions/A/OSServices
dyld[3533]: <8B551A04-44E8-3C42-9C41-70D36E9BE511> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SearchKit.framework/Versions/A/SearchKit
dyld[3533]: <9545DA42-F6A6-311E-95FE-6745BD9D552D> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/AE.framework/Versions/A/AE
dyld[3533]: <DB84BEE2-C819-32F2-81AA-315A87713386> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/LaunchServices
dyld[3533]: <FD3495B6-E31B-3487-9276-D12EBE660A76> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/DictionaryServices.framework/Versions/A/DictionaryServices
dyld[3533]: <58F90D2C-65C4-317F-B795-06D998B2D34C> /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/SharedFileList.framework/Versions/A/SharedFileList
dyld[3533]: <3CC96646-6339-3D08-95FE-4602FD968412> /System/Library/Frameworks/IOKit.framework/Versions/A/IOKit
dyld[3533]: <E5EDAFBB-254F-33C3-8BCE-FC8571391677> /System/Library/Frameworks/Security.framework/Versions/A/Security
dyld[3533]: <17311292-FF5E-3412-8935-3A67599869B2> /System/Library/Frameworks/SystemConfiguration.framework/Versions/A/SystemConfiguration
dyld[3533]: <3C6FB7FC-879F-3314-875D-67BCC977F7E7> /usr/lib/libapple_nghttp2.dylib
dyld[3533]: <4B5E75D5-AAA8-39AF-B622-4A7F3C7A282A> /usr/lib/libnetwork.dylib
dyld[3533]: <5A706F41-18B4-34C8-BDD2-9684CCB5D04C> /usr/lib/libsqlite3.dylib
dyld[3533]: <1964A883-D1E6-3C2A-9522-9DBFDB4C6A77> /usr/lib/libz.1.dylib
dyld[3533]: <CD7CDF11-986E-3754-8011-E628C3BE8380> /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation
dyld[3533]: <A248CAEF-79F7-356F-A968-6655A0B69E2F> /usr/lib/libDiagnosticMessagesClient.dylib
dyld[3533]: <C07AE2DF-BDB2-3888-A617-BF03FCF5794E> /usr/lib/libenergytrace.dylib
dyld[3533]: <1504EEC9-0B0A-3572-9D5D-1BB275C9024B> /usr/lib/libbsm.0.dylib
dyld[3533]: <9F2F16DB-6675-3A64-B799-F9883A8BAB37> /usr/lib/system/libkxld.dylib
dyld[3533]: <B5505FEB-F12A-375E-9FB5-91BB689B2BCF> /usr/lib/libCoreEntitlements.dylib
dyld[3533]: <D003F4DF-C36F-3A0F-B27B-1FF9F2F91AE3> /usr/lib/libMobileGestalt.dylib
dyld[3533]: <D9D483AD-310C-3342-8A63-1334E40066A7> /System/Library/PrivateFrameworks/AppleFSCompression.framework/Versions/A/AppleFSCompression
dyld[3533]: <33839A68-3EDA-3BEA-8E82-15AFD2672974> /usr/lib/libcoretls.dylib
dyld[3533]: <E427AE7A-3A4A-3D33-A9FF-EC6C1E734EEE> /usr/lib/libcoretls_cfhelpers.dylib
dyld[3533]: <FB7B5A11-1B3C-348E-B7AD-9362B7DFC295> /usr/lib/libpam.2.dylib
dyld[3533]: <0835F323-DBF5-3C7E-8A79-365ED66679C9> /usr/lib/libxar.1.dylib
dyld[3533]: <3CE3264F-FF3E-3B40-B674-6F54B4B03B7A> /System/Library/PrivateFrameworks/CoreAutoLayout.framework/Versions/A/CoreAutoLayout
dyld[3533]: <5F4FBCD5-4CD0-3A14-AC04-DC456E8BADE8> /usr/lib/libcompression.dylib
dyld[3533]: <EB02888E-3096-39D6-87E2-DB7C65A8260E> /System/Library/Frameworks/DiskArbitration.framework/Versions/A/DiskArbitration
dyld[3533]: <42A85931-7983-3D80-AE3B-F2CEA1953E46> /usr/lib/libarchive.2.dylib
dyld[3533]: <070CA6D8-7423-3D4B-BA5C-636EB569940D> /usr/lib/libxml2.2.dylib
dyld[3533]: <0E23C2BB-D054-30EE-9079-2580B57A58B7> /usr/lib/liblangid.dylib
dyld[3533]: <6E935C94-9000-389C-A476-5C0E1067F5FA> /System/Library/PrivateFrameworks/AppleSystemInfo.framework/Versions/A/AppleSystemInfo
dyld[3533]: <A0C89A4D-FA2B-3DAC-A534-0A138608293F> /System/Library/PrivateFrameworks/IOMobileFramebuffer.framework/Versions/A/IOMobileFramebuffer
dyld[3533]: <16DA354C-3296-3DD5-8B70-BB5B5DE7E3AD> /System/Library/Frameworks/IOSurface.framework/Versions/A/IOSurface
dyld[3533]: <7D90D6F2-B809-3E0C-B33A-E501A059486D> /usr/lib/libpcap.A.dylib
dyld[3533]: <4ED3451E-B92C-3E9C-8FB3-B82CAB3A3682> /usr/lib/libdns_services.dylib
dyld[3533]: <4B6FDC15-DDA1-3553-89F2-69A09B32356E> /usr/lib/liblzma.5.dylib
dyld[3533]: <A2998CE7-8983-3C2C-A061-A82F2358C327> /usr/lib/libbz2.1.0.dylib
dyld[3533]: <BB9AD7EB-5447-30AF-BA5B-7F014B32D044> /usr/lib/libiconv.2.dylib
dyld[3533]: <4BF8FE1F-C500-3289-BB8E-D9095A12E8EF> /usr/lib/libcharset.1.dylib
dyld[3533]: <80F3EB82-5AB8-324E-A729-EEC16369CFB7> /usr/lib/libCheckFix.dylib
dyld[3533]: <3313DD91-7C48-3C3A-986E-F223270B647E> /System/Library/PrivateFrameworks/TCC.framework/Versions/A/TCC
dyld[3533]: <628BC637-56E7-3E29-BA43-189AA908F56A> /System/Library/PrivateFrameworks/CoreNLP.framework/Versions/A/CoreNLP
dyld[3533]: <E725E275-3ABF-3B54-B81E-3CCB0F82D68F> /System/Library/PrivateFrameworks/MetadataUtilities.framework/Versions/A/MetadataUtilities
dyld[3533]: <3EDE4121-EB32-341B-9364-5A873874E3CA> /usr/lib/libmecabra.dylib
dyld[3533]: <600A7FB5-32B2-3FB9-9788-0A622E9EFBE7> /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
dyld[3533]: <A812BDFD-0A24-374C-B603-0061C72BDDE3> /usr/lib/libmecab.dylib
dyld[3533]: <FDBB89D1-0D9C-34E1-AEE8-9D8BC90FD7BC> /usr/lib/libCRFSuite.dylib
dyld[3533]: <CEE40A88-878C-3C26-8D83-5B86B7BE5A3D> /usr/lib/libgermantok.dylib
dyld[3533]: <F095FA8E-4E4C-3EFE-86B2-C70535BC19A1> /usr/lib/libThaiTokenizer.dylib
dyld[3533]: <EE8A6440-1407-39A5-A6D0-98A95A0727AC> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vImage.framework/Versions/A/vImage
dyld[3533]: <3597336D-1C1A-31BF-A033-F991BAB5D3E3> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/vecLib
dyld[3533]: <E63F023F-903D-331B-823C-EA23842858B9> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvMisc.dylib
dyld[3533]: <575A5DBF-4C4A-3FCD-8C78-5C49A1461BEA> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libvDSP.dylib
dyld[3533]: <A416CA6A-AF03-3853-9326-A5F55C47DDFB> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
dyld[3533]: <98224EE2-9855-3B51-9CF7-45F4C4B57D9B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLAPACK.dylib
dyld[3533]: <CFC87BC3-C056-3D84-9575-8AF4F9B90739> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libLinearAlgebra.dylib
dyld[3533]: <69A2A96A-00C4-3060-ADC5-B95904B51F94> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparseBLAS.dylib
dyld[3533]: <982D8311-129E-3496-B06C-C0B4AB0CE27C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libQuadrature.dylib
dyld[3533]: <B6AC5D38-DB1D-340A-A367-CFA7AE775B7C> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBNNS.dylib
dyld[3533]: <33F06C3B-0B04-3EFE-8771-0D5BCFFAD15B> /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libSparse.dylib
dyld[3533]: <BF66A148-79E0-3AC9-B3A5-E222D83CD5F9> /System/Library/PrivateFrameworks/CoreAnalytics.framework/Versions/A/CoreAnalytics
dyld[3533]: <36C9CF4B-F8EA-3C44-8556-BE74D56AA9B6> /System/Library/PrivateFrameworks/LinguisticData.framework/Versions/A/LinguisticData
dyld[3533]: <1239F60A-6F70-342F-9DC8-E5400BE4C495> /System/Library/PrivateFrameworks/Lexicon.framework/Versions/A/Lexicon
dyld[3533]: <02C03973-C73B-34EA-9EA0-E3B13F1E43BB> /usr/lib/libChineseTokenizer.dylib
dyld[3533]: <B6E4B8F5-E3D9-376D-8FE0-0615613D16A1> /System/Library/PrivateFrameworks/LanguageModeling.framework/Versions/A/LanguageModeling
dyld[3533]: <55086D43-5E73-3D79-B528-BA09935F9FF0> /System/Library/PrivateFrameworks/AppleSauce.framework/Versions/A/AppleSauce
dyld[3533]: <2C1AF22C-6685-387E-AC98-DDA5F9373BFD> /System/Library/PrivateFrameworks/CoreEmoji.framework/Versions/A/CoreEmoji
dyld[3533]: <599926AB-D0AD-3499-AB68-987A3E64E847> /usr/lib/libcmph.dylib
dyld[3533]: <F630DED1-EE8F-3836-B0C6-D51FFC117BF3> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/Frameworks/CFOpenDirectory.framework/Versions/A/CFOpenDirectory
dyld[3533]: <C3AD2404-308F-3A6E-8A53-325628F61AF1> /System/Library/Frameworks/OpenDirectory.framework/Versions/A/OpenDirectory
dyld[3533]: <2A2B75F3-CFB8-352B-825C-8C9A739734CA> /System/Library/PrivateFrameworks/APFS.framework/Versions/A/APFS
dyld[3533]: <C35495F8-0591-328E-BFD1-C79AFD4B7BF6> /System/Library/Frameworks/SecurityFoundation.framework/Versions/A/SecurityFoundation
dyld[3533]: <2A954141-417F-3E06-97C7-D79B4FFAFC8F> /usr/lib/libutil.dylib
dyld[3533]: <6CD5B18E-E756-3FC2-8BF3-6530B2CF7EEA> /System/Library/PrivateFrameworks/CoreServicesStore.framework/Versions/A/CoreServicesStore
dyld[3533]: <2DBB59FE-1BB1-3950-8656-1627C69EDD69> /usr/lib/libapp_launch_measurement.dylib
dyld[3533]: <A1216D29-43DF-3D12-B5D6-BB86DA036F80> /usr/lib/libxslt.1.dylib
dyld[3533]: <7064911F-9A95-33B9-855A-DE025E7BF4EE> /System/Library/PrivateFrameworks/BackgroundTaskManagement.framework/Versions/A/BackgroundTaskManagement
dyld[3533]: <60477550-BC7D-38D9-9B9B-49047FEF3569> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libclrjit.dylib
Unhandled exception. dyld[3533]: <2C1553F7-62B4-36D7-B354-5B3C24CC5F1B> /usr/local/share/dotnet/shared/Microsoft.NETCore.App/6.0.1/libSystem.Native.dylib
System.EntryPointNotFoundException: Unable to find an entry point named 'webview_create' in shared library 'webview'.
   at SharpWebview.Bindings.webview_create(Int32 debug, IntPtr window)
   at SharpWebview.Webview..ctor(Boolean debug, Boolean interceptExternalLinks)
   at Program.Main(String[] args) in /Users/foobar/workspace/csharp/Webview/Program.cs:line 9

Environment

  • OS: macOS 12.1
  • Arch: Arm64 (apple silicon)
  • .NET 6.0.101

Call to SharpWebview.Webview.Navigate fails on call to SingleOrDefault

When calling the Navigate method at application startup, GetWebViewAppContainerSid seems to find more than one AppContainer with a name matching microsoft.win32webviewhost_cw5n1h2txyewy, resulting in this error (this stacktrace is from the example DesktopApp, but the same happens with my own app)

~\webview_csharp\examples\DesktopApp> dotnet run
Unhandled exception. System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.ThrowHelper.ThrowMoreThanOneMatchException()
   at System.Linq.Enumerable.TryGetSingle[TSource](IEnumerable`1 source, Func`2 predicate, Boolean& found)
   at System.Linq.Enumerable.SingleOrDefault[TSource](IEnumerable`1 source, Func`2 predicate)
   at SharpWebview.Loopback.GetWebViewAppContainerSid() in ~\webview_csharp\src\SharpWebview\Loopback.cs:line 31
   at SharpWebview.Loopback.IsWebViewLoopbackEnabled() in ~\webview_csharp\src\SharpWebview\Loopback.cs:line 21
   at SharpWebview.Webview.CheckLoopbackException(String url) in ~\webview_csharp\src\SharpWebview\Webview.cs:line 260
   at SharpWebview.Webview.Navigate(IWebviewContent webviewContent) in ~\webview_csharp\src\SharpWebview\Webview.cs:line 94
   at DesktopApp.Program.Main(String[] args) in ~\webview_csharp\examples\DesktopApp\Program.cs:line 24

I have checked that I added the loopback exemption

> CheckNetIsolation.exe LoopbackExempt -s

List Loopback Exempted AppContainers

[1] -----------------------------------------------------------------
    Name: AppContainer NOT FOUND
    SID:  S-1-15-2-490905099-2794809881-2632752266-3514030558-4166392763-3416490339-321513134

[2] -----------------------------------------------------------------
    Name: microsoft.win32webviewhost_cw5n1h2txyewy
    SID:  S-1-15-2-1310292540-1029022339-4008023048-2190398717-53961996-4257829345-603366646

OK.

(I actually tried clearing and re-adding the exemption a couple of times to no avail, because apparently the exemption list can become corrupted)

This is on Windows 11 21H2, using .NET 6.0.8 (SDK 6.0.400), WebView2 Runtime 105.0.1343.27

Size and position of window

Hi I am wondering how to handle maximizing/full screening the window or setting a start position for the window. Atm it looks like there is only a function exposing the size of the window.

The core repo states:

WebView.SetColor() and WebView.SetFullScreen() have been removed. Use Window() to get native window handle and probably write some Cgo code to adjust native window to your taste.

It doesn't look like a base window object to manipulate is exposed.

We would like to save changes the user has made in our db, and set the proper parameters of the webview the next time the application is started. Example:

  1. App opens to 1280x768 at 120,37
  2. User moves the app to 0,0
  3. user resizes the app to 1024x790
  4. user maximizes the app
  5. user closes the app
  6. App saves "1024x790 @ 0,0" as its size/position. App saves "maximized = true" as its maximized status
  7. User opens the app. It's maximized. User clicks restore. The window restores to 1024x790 @ 0,0.

Is there anyway position and maximize functionality could be exposed?

Thanks,
Mitch

Use .NET 8 AOT to produce much smaller distributables

Currently, you have to ensure that .NET is installed on the target computer. You can't simple deliver the EXE, unless you do a self-contained EXE, in which case it'll be closer to a 100 MB. I tried the basic example, and it produced a stand-alone exe that's 94,175KB (not counting the 1,544KB webview.dll)

However, .NET AOT can produce tiny DLLs that just a few KB. The result DLLs are not .NET assemblies, but they are standard Windows DLLs that can be P/Invoked from any programming language that can call C functions in a DLL (i.e. every language)

This means, there can be an alternate version of webview_csharp which uses a very simple C++ based "Window" applications so that when it's launched it doesn't create a console, which then loads the webview_csharp created AOT DLL with the user's code. The resulting distributable will be relatively small. One would only need to distribute webview.dll, the shell EXE, and the user's AOT DLL(s), enabling a system where a user can write GUI applications with C# that have a very small distribution.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.