diff --git a/modules/mono/godotsharp_dirs.cpp b/modules/mono/godotsharp_dirs.cpp index 80e44011be5a..f6faf7df83ff 100644 --- a/modules/mono/godotsharp_dirs.cpp +++ b/modules/mono/godotsharp_dirs.cpp @@ -192,9 +192,15 @@ class _GodotSharpDirs { } } if (!has_data) { - // 3. Extract the data to a temporary location to load from there. - Ref da = DirAccess::create_for_path(packed_path); - ERR_FAIL_NULL(da); + // 3. Extract the data to a temporary location to load from there, delete old data if it exists but is not up-to-date. + Ref da; + if (DirAccess::exists(data_dir_root)) { + da = DirAccess::open(data_dir_root); + ERR_FAIL_NULL(da); + ERR_FAIL_COND(da->erase_contents_recursive() != OK); + } + da = DirAccess::create_for_path(packed_path); + ERR_FAIL_COND(da.is_null()); ERR_FAIL_COND(da->copy_dir(packed_path, data_dir_root) != OK); } api_assemblies_dir = data_dir_root;