WPF 集成 OrchardCore 测试

代码

csproj

   <PackageReference Include="Microsoft.Web.WebView2" Version="1.0.2210.55" />
   <PackageReference Include="OrchardCore.Application.Cms.Targets" Version="1.8.1" />

OrchardCoreHost类

    public class OrchardCoreHost
    {
        private WebApplicationBuilder _webBuilder;
        private WebApplication _webApplication;
        public async Task Start()
        {
            _webBuilder = WebApplication.CreateBuilder();
            _webBuilder.Services.AddOrchardCms();
            _webApplication = _webBuilder.Build();
            _webApplication.UseStaticFiles();
            _webApplication.UseOrchardCore();
            await _webApplication.RunAsync();
        }

        public async Task Stop()
        {
            await _webApplication.StopAsync();
        }
    }

MainWindow类

	public partial class MainWindow : Window
	{
			private OrchardCoreHost _orchardCoreHost;

			public MainWindow()
			{
					InitializeComponent();
					_orchardCoreHost = new OrchardCoreHost();

					InitializeAsync();
			}
			private async void InitializeAsync()
			{
					await _orchardCoreHost.Start();
					webView.CoreWebView2.ServerCertificateErrorDetected += WebView_ServerCertificateErrorDetected;
					await webView.EnsureCoreWebView2Async(null);


			}
			void WebView_ServerCertificateErrorDetected(object sender, CoreWebView2ServerCertificateErrorDetectedEventArgs e)
			{
					CoreWebView2Certificate certificate = e.ServerCertificate;
					e.Action = CoreWebView2ServerCertificateErrorAction.Cancel;
			}

	}

MainWindow.xaml

<Window x:Class="WpfApp1.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:WpfApp1"
        xmlns:wv2="clr-namespace:Microsoft.Web.WebView2.Wpf;assembly=Microsoft.Web.WebView2.Wpf"

        mc:Ignorable="d"
        Title="MainWindow" Height="450" Width="800">
    <Grid>
        <!--添加一个WebBrowser -->
        <wv2:WebView2 x:Name="webView" Source="http://localhost:5000" />
    </Grid>
</Window>


截图

结果

生成单个exe成功,运行速度有点慢,再次打包遇到Http 500 问题,用vs 20222调试代码的生成速度太慢了,生成的单个文件大小为155MB,我决定放弃这个方向了。

缺点总结

  1. 生成代码慢非常降低调试速度
  2. 生成的包太大了,electron才不到100MB
  3. 代码没有加密过,但是运行速度就是有点慢,可能是webview2造成的,不清楚原因,wpf的webbrowser更难用,直接js报错,使用wpf集成浏览器这个方向还是太新了


作者:spike

分类: Net

创作时间:2024-01-13

更新时间:2024-01-13

联系方式放在中括号之中例如[[email protected]],回复评论在开头加上标号例如:#1