You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Neutralinojs中禁用Webview2的GPU着色器缓存?

解决Neutralinojs中Webview2着色器缓存问题

下面是几种可行的方案,按实现简便程度排序:

1. 通过Neutralino配置添加Webview2参数

Webview2本身支持禁用着色器磁盘缓存的启动参数,你可以直接在neutralino.config.json的webview配置中添加该参数:

{
  "webview": {
    "additionalArguments": [
      "--disk-cache-size=1024",
      "--disable-gpu-shader-disk-cache"
    ]
  }
}

这个参数会直接让Webview2不再生成着色器缓存文件,是最直接的解决方案。

2. 修改Neutralino核心源码(进阶方案)

如果上面的配置未生效,你可以修改Neutralino的Webview2初始化逻辑,手动注入参数:

  • 打开Neutralino核心源码中的src/neutralino.cpp文件
  • 找到Webview2环境初始化的代码段(通常在initWebview函数附近)
  • 将--disable-gpu-shader-disk-cache添加到Webview2的启动参数列表中
  • 重新编译Neutralino核心替换现有版本

3. 运行时自动清理着色器缓存

如果禁用缓存的方式不可行,也可以通过Neutralino的文件系统API在应用启动/退出时自动删除缓存目录:

async function clearShaderCache() {
  const appDataPath = await Neutralino.os.getEnv('APPDATA');
  // 替换[applicationName]为你的实际应用名称
  const shaderCacheDir = `${appDataPath}/Roaming/[applicationName]/GPUCache`;
  try {
    await Neutralino.filesystem.removeDirectory(shaderCacheDir, { recursive: true });
  } catch (err) {
    // 缓存目录不存在时忽略错误
  }
}

// 应用初始化完成后执行清理
Neutralino.init()
  .then(clearShaderCache)
  .catch(err => console.error(err));

内容的提问来源于stack exchange,提问作者szatkus

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.11 18:04:54