Tools.json CallList needs feature to skip when target exists.
With current setup it will skip installing upgraded plugin:
"autoDeleteAfterInstall": true,
"skipIfRunnableExists": true
But it needs to skip install in a different way instead:
"callList": [
{
"skipIfTargetAlreadyExisted": true,
"call": "{TOOLS_DIR}/blender-3.4.1-windows-x64/blender.exe",
"callArgs": {
"--background": "",
"--python-expr": "import bpy; import os; fp=os.path.normpath('{THIS_DIR}/{TOOLS_DIR}/io_mesh_w3d.zip'); bpy.ops.preferences.addon_install(overwrite=True, filepath=fp)"
}
}
]