首页 > 其他分享 >WinForm 直接运行 Admin.NET

WinForm 直接运行 Admin.NET

时间:2024-11-24 21:59:33浏览次数:11  
标签:Web 项目 Admin 许可证 NET webview WinForm

前言

以客户端 WinForm 桌面程序模式直接运行 Admin.NET,免去手动配置 Web 服务的繁琐步骤,方便给别人演示,可以当做单机软件使用了。

新建winform项目

添加包Furion.Pure与Microsoft.Web.WebView2

引用项目:Admin.NET.Web.Core

从Admin.NET.Web.Entry项目复制appsettings.json与SingleFilePublish.cs,

修改Program.cs

// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!

namespace WinFormsApp;

internal static class Program
{
    /// <summary>
    ///  The main entry point for the application.
    /// </summary>
    [STAThread]
    static void Main()
    {
        Serve.RunNative(RunOptions.Default, Serve.IdleHost.Urls);   // 随机端口
        ApplicationConfiguration.Initialize();
        Application.Run(Native.CreateInstance<Form1>());

    }
}

修改Form1.cs

添加webview组件

// Admin.NET 项目的版权、商标、专利和其他相关权利均受相应法律法规的保护。使用本项目应遵守相关法律法规和许可证的要求。
//
// 本项目主要遵循 MIT 许可证和 Apache 许可证(版本 2.0)进行分发和使用。许可证位于源代码树根目录中的 LICENSE-MIT 和 LICENSE-APACHE 文件。
//
// 不得利用本项目从事危害国家安全、扰乱社会秩序、侵犯他人合法权益等法律法规禁止的活动!任何基于本项目二次开发而产生的一切法律纠纷和责任,我们不承担任何责任!

using Microsoft.AspNetCore.Hosting.Server;
using Microsoft.Extensions.Hosting;
using Microsoft.Web.WebView2.Core;

namespace WinFormsApp;

public partial class Form1 : Form
{
    public Form1(IServer server)    // 注入 IServer 服务,获取 Web 启动地址/端口
    {
        InitializeComponent();

        webview.Dock = DockStyle.Fill;
        webview.Source = new Uri(server.GetServerAddress() + "/index.html");

        // 添加 WebView 右键菜单:在浏览器中打开
        webview.CoreWebView2InitializationCompleted += (a, c) =>
        {
            webview.CoreWebView2.ContextMenuRequested += (sender, args) =>
            {
                var newItem = webview.CoreWebView2.Environment.CreateContextMenuItem(
                    "在浏览器中打开", null, CoreWebView2ContextMenuItemKind.Command);

                newItem.CustomItemSelected += (send, ex) =>
                {
                    var pageUri = args.ContextMenuTarget.PageUri;
                    System.Diagnostics.Process.Start("explorer.exe", server.GetServerAddress() + "/index.html");
                };

                args.MenuItems.Insert(args.MenuItems.Count, newItem);
            };
        };
    }
    private void Form1_Load(object sender, EventArgs e)
    {

    }
}

编辑WinFormsApp项目文件

将改为

新建wwwroot目录,将前端生成的文件复制到wwwroot目录

效果

作者

吴晓阳(手机:13736969112微信同号)

标签:Web,项目,Admin,许可证,NET,webview,WinForm
From: https://blog.csdn.net/shiningrise/article/details/144009334

相关文章

  • 基于HRNet模型的跌倒检测系统设计与实现
    收藏关注不迷路!!......
  • WinForm 直接运行 Admin.NET
    前言以客户端WinForm桌面程序模式直接运行Admin.NET,免去手动配置Web服务的繁琐步骤,方便给别人演示,可以当做单机软件使用了。新建winform项目添加包Furion.Pure与Microsoft.Web.WebView2引用项目:Admin.NET.Web.Core从Admin.NET.Web.Entry项目复制appsettings.json与Singl......
  • Fastadmin框架短视频知识付费系统存在任意文件读取漏洞
    免责声明:本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在使用本......
  • .NET 8.0 网站部署到IIS教程
    默认打开显示是这样。1.安装.NETHostingBundlehttps://dotnet.microsoft.com/zh-cn/download/dotnet/9.0 2.设置权限确保IIS的用户账户有权限访问发布文件夹。右键发布文件夹>属性>安全。添加用户IIS_IUSRS,并赋予读取与执行权限。    ......
  • 社区发布非官方龙架构 .NET 9 SDK 发行版jj
    随着.NET9的发布,龙芯的Loongarch架构的.NET9SDK的发布也提上了日程,在龙芯.NET的官方支持之外,今年在社区有一个非官方龙架构.NETSDK发行版(相关链接[1]https://github.com/loongson-community/dotnet-unofficial-build[2]https://github.com/loongson-community/dotne......
  • 从零开始:NetBox 4.1 Docker 部署和升级Pd
    前言由于Netbox官方的中文语言日渐完善,所以新出一个使用官方Docker源部署和升级的教程。Netbox系列文章:https://songxwn.com/categories/NetBox/环境介绍RockyLinux9.5(理论上也适用于RHEL系列的7-9版本)南京大学镜像源ISO镜像下载:https://mirror.nju.edu.cn/rocky/9/isos......
  • 从零开始:NetBox 4.1 Docker 部署和升级
    前言由于Netbox官方的中文语言日渐完善,所以新出一个使用官方Docker源部署和升级的教程。Netbox系列文章:https://songxwn.com/categories/NetBox/环境介绍RockyLinux9.5(理论上也适用于RHEL系列的7-9版本)南京大学镜像源ISO镜像下载:https://mirror.nju.edu.cn/rocky/9/isos......
  • .NET9 - 新功能体验(三)
    书接上回,我们继续来聊聊.NET9和C#13带来的新变化。01、Linq新方法CountBy和AggregateBy引入了新的方法CountBy和AggregateBy后,可以在不经过GroupBy分配中间分组的情况下快速完成复杂的聚合操作,同时方法命名也非常直观,可以大大提升工作效率。我们先以CountBy为例,简单实......
  • 在 ASP.NET Core 中创建 gRPC 客户端和服务器
    前言gRPC是一种高性能、开源的远程过程调用(RPC)框架,它基于ProtocolBuffers(protobuf)定义服务,并使用HTTP/2协议进行通信。新建项目新建解决方案GrpcDemo新建webapi项目GrpcServer作为grpc服务端项目添加包<PackageReferenceInclude="Grpc.AspNetCore"Version="2.67.......
  • ABP aspnetzero power toole 最新 4.4.0 和谐记录
    参照之前的记录.netzeropowertoole破解日志在用工具创建模型后,点击生成的过程.会在代码目录生成AspNetZeroRadTool的文件夹.总是会覆盖.AspNetZeroRadTool的文件夹中生成当前模型的json文件执行dotnetAspNetZeroRadTool模型.json生成文件所以要处理的......