### Godot version

4.0.beta13

### System information

Mageia 9, Linux

### Issue description

When exporting a trivial .NET project with 4.0.beta13, I get the following error:

```
ERROR: Required virtual method EditorExportPlugin::_get_name must be overridden before calling.
   at: _gdvirtual__get_name_call (editor/export/editor_export_plugin.h:123)
```

It doesn't seem to prevent exporting, but should be fixed anyway.

On the first export attempt (not be reproducible in my MRP, needs to be redone from scratch), it also shows this warning:
```
WARNING: Property not found: dotnet/project/assembly_name
     at: get_setting_with_override (core/config/project_settings.cpp:364)
```
Which likely means that we're using `GLOBAL_GET` before we defined the property with `GLOBAL_DEF`.

### Steps to reproduce

- Create a simple project with a hello world C# script
- Export it from Linux to Linux or Windows (didn't test other combinations, would likely have the same issue)
- Check Output dock / console

### Minimal reproduction project

[TestMono.zip](https://github.com/godotengine/godot/files/10445350/TestMono.zip)
bool CSharpScript::_get(const StringName &p_name, Variant &r_ret) const {
	if (p_name == CSharpLanguage::singleton->string_names._script_source) {
		r_ret = get_source_code();
		return true;
	}
	return false;
}
bool CSharpScript::_set(const StringName &p_name, const Variant &p_value) {
	if (p_name == CSharpLanguage::singleton->string_names._script_source) {
		set_source_code(p_value);
		reload();
		return true;
	}
	return false;
}
void CSharpScript::_get_property_list(List<PropertyInfo> *p_properties) const {
	p_properties->push_back(PropertyInfo(Variant::STRING, CSharpLanguage::singleton->string_names._script_source, PROPERTY_HINT_NONE, "", PROPERTY_USAGE_NO_EDITOR | PROPERTY_USAGE_INTERNAL));
}
void CSharpScript::_bind_methods() {
	ClassDB::bind_vararg_method(METHOD_FLAGS_DEFAULT, "new", &CSharpScript::_new, MethodInfo("new"));
}
void CSharpScript::reload_registered_script(Ref<CSharpScript> p_script) {
	// IMPORTANT:
	// This method must be called only after the CSharpScript and its associated type
	// have been added to the script bridge map in the ScriptManagerBridge C# class.
	// Other than that, it's the same as `CSharpScript::reload`.
	// This method should not fail, only assertions allowed.
	// Unlike `reload`, we print an error rather than silently returning,
	// as we can assert this won't be called a second time until invalidated.
	ERR_FAIL_COND(!p_script->reload_invalidated);