01-03 Electron + dotnet 5 Blazor + ElectronNET.API在linux下发布

11 篇文章 0 订阅
3 篇文章 0 订阅

一、安装npx

npm install -g npx

建立软链接(路径为node安装路径)

sudo ln -s /home/lanyp/application/node/bin/npx /usr/local/bin/

在这里插入图片描述

二、安装ectron-builder

npm install -g ectron-builder

建立软链接(路径为node安装路径)

sudo ln -s /home/lanyp/application/node/bin/electron-builder /usr/local/bin/
sudo ln -s /home/lanyp/application/node/bin/install-app-deps /usr/local/bin/

三、安装asar

npm install -g asar

建立软链接(路径为node安装路径)

sudo ln -s /home/lanyp/application/node/bin/asar /usr/local/bin/

四、修改electron.manifest.json配置

(1)修改默认端口,默认为8000

"electronPort":"8045",

(2)修改build targetcategory

"build": {
  "linux":{
    "category":"Development",
      "target": [
        {
          "target": "appImage",
          "arch": [  "x64", "ia32" ]
        }]
    }
}

在这里插入图片描述

五、压缩项目文件

(1)在项目根目录下运行asar pack ./ app.asar
在这里插入图片描述
(2)将压缩包复制到~/obj/Host/node_modules/electron/dist/resources目录下
在这里插入图片描述

六、打包

在项目目录下执行下面脚本

electronize build /target linux

过程中会下载以下几个压缩包,下载过程很慢,可以在外部下载下来,然后拷贝到对应路径下,具体版本根据个人实际情况
(1)以下两个拷贝到~/.cache/electron/路径下,无需解压

(2)以下两个拷贝到~/.cache/electron-builder路径下的对应文件夹,需要解压

在这里插入图片描述
appimage文件夹
在这里插入图片描述
snap文件夹
在这里插入图片描述
最后重新打包

electronize build /target linux

在这里插入图片描述
打包完成的文件在项目目录~/bin/Desktop
在这里插入图片描述

七、运行

在这里插入图片描述
或者
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要在Electron + TypeScript + Vite项目中调用Everything.dll实现快速搜索,可以按照以下步骤进行操作: 1. 安装Everything软件并启动它,确保Everything.dll已经被正确安装。 2. 在项目中安装node-ffi和ref-napi,这两个模块可以帮助我们在Node.js中调用DLL函数。可以使用以下命令进行安装: ```bash npm install node-ffi ref-napi ``` 3. 创建一个名为everything.ts的TypeScript模块,并在其中定义我们要调用的Everything.dll函数。可以参考以下代码: ```typescript import { FFI } from 'ffi-napi'; /** * Everything.dll中的函数声明 */ export interface EverythingDLL extends FFI.Library { Everything_SetSearchW: (search: Buffer) => void; Everything_QueryW: (wait: number) => void; Everything_GetNumResults: () => number; Everything_GetResultFullPathNameW: (index: number, buf: Buffer, size: number) => number; Everything_CleanUp: () => void; } /** * 加载Everything.dll */ const everythingDll: EverythingDLL = FFI.Library('Everything.dll', { Everything_SetSearchW: ['void', ['pointer']], Everything_QueryW: ['void', ['int']], Everything_GetNumResults: ['int', []], Everything_GetResultFullPathNameW: ['int', ['int', 'pointer', 'int']], Everything_CleanUp: ['void', []], }); export default everythingDll; ``` 4. 在项目中使用everything.ts模块来进行搜索。可以参考以下代码: ```typescript import everythingDll from './everything'; /** * 搜索文件 * @param search 搜索关键字 * @returns 搜索结果数组 */ export function searchFiles(search: string): string[] { // 将搜索关键字转为UTF-16编码的Buffer const searchBuffer = Buffer.from(search, 'ucs2'); // 设置搜索关键字 everythingDll.Everything_SetSearchW(searchBuffer); // 执行搜索 everythingDll.Everything_QueryW(1); // 获取搜索结果数量 const resultCount = everythingDll.Everything_GetNumResults(); // 获取搜索结果 const results: string[] = []; for (let i = 0; i < resultCount; i++) { const buf = Buffer.alloc(4096); everythingDll.Everything_GetResultFullPathNameW(i, buf, buf.length); const result = buf.toString('ucs2'); results.push(result); } // 清理搜索结果 everythingDll.Everything_CleanUp(); return results; } ``` 5. 在Electron应用程序中使用searchFiles函数进行搜索。可以参考以下代码: ```typescript import { app, BrowserWindow } from 'electron'; import { searchFiles } from './everything'; function createWindow() { const win = new BrowserWindow({ width: 800, height: 600, webPreferences: { nodeIntegration: true, }, }); win.loadFile('index.html'); // 在渲染进程中使用searchFiles函数进行搜索 win.webContents.on('did-finish-load', () => { const results = searchFiles('test'); console.log(results); }); } app.whenReady().then(() => { createWindow(); app.on('activate', () => { if (BrowserWindow.getAllWindows().length === 0) { createWindow(); } }); }); app.on('window-all-closed', () => { if (process.platform !== 'darwin') { app.quit(); } }); ``` 这样就可以在Electron + TypeScript + Vite项目中调用Everything.dll实现快速搜索了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值