Как устранить рассинхронизацию библиотек классов Mono со средой выполнения MonoC#

Место общения программистов C#
Ответить
Anonymous
 Как устранить рассинхронизацию библиотек классов Mono со средой выполнения Mono

Сообщение Anonymous »

Я создаю мод, используя MelonLoader v0.6.6. Я модифицирую игру Unity, созданную с использованием версии Unity 2021.3.16f1. Большая часть функций работает, однако некоторые вызовы функций завершаются сбоем, и я получаю следующую ошибку:

невозможно разрешить внутренний вызов «UnityEngine.JsonUtility::FromJsonInternal» (проверено) без подписи)


Ваша моно-библиотека времени выполнения и библиотеки классов не синхронизированы.
Несинхронизированная библиотека является: E:\Steam Games\steamapps\common\ATLYSS\ATLYSS_Data\Managed\UnityEngine.JSONSerializeModule.dll


При обновлении один из git вам нужно обновить, скомпилировать и установить
другой тоже.
Не сообщайте об этом как об ошибке, если не уверены, что обновились правильно:
вы возможно, у вас сломанная моноустановка.
Если после этого сообщения вы видите другие ошибки или сбои, они, вероятно, связаны с этим
и вам нужно сначала исправить моноустановку.
не могу разрешить внутренний вызов UnityEngine .JsonUtility::FromJsonInternal" (проверено также без подписи)

Это приводит к сбою вызова функции, и обычно после этого мод выходит из строя. Проблема мешает мне делать то, что я пытаюсь сделать. Это всего лишь одна функция, которая вызывает проблему. Другие функции выдают ту же ошибку.
Я пробовал создать приложение, используя множество версий .NET, включая .NET Standard 2.1 (рекомендуется для этой версии Unity), Framework 4.6. 2, 4.7.2, 4.8, 4.5.2, 4.0, 3.5 (несовместимы), некоторые другие. Я использовал генератор шаблонов MelonLoader и выбрал игру, которую модифицирую, и он вводит все необходимые ссылки на сборки и создает проект начальной точки, но ошибка все еще возникает. Я создал приложение с чистого листа и вручную выбрал каждую ссылку на сборку вручную, и у меня возникла та же проблема. Я установил несколько версий mono, и все они вызывают одну и ту же проблему (я даже не уверен, что какая-либо из установок каким-либо образом повлияла на то, что использовалось для сборки мода в Visual Studio). Я занимаюсь этим некоторое время и нуждаюсь в совете. Я прочитал бесчисленное количество сообщений, которые не проливают никакого света на эту проблему. Любая помощь приветствуется.
Ниже приведен минимальный пример, вызывающий ошибку:

Код: Выделить всё

using MelonLoader;
using HarmonyLib;
using UnityEngine;

[assembly: MelonInfo(typeof(ServerCapModifier.Core), "ServerCapModifier", "1.5.0", "Stunted Raccoon", null)]
[assembly: MelonGame("KisSoft", "ATLYSS")]

namespace ServerCapModifier {
public class Core : MelonPlugin {
[HarmonyPatch(typeof(AtlyssNetworkManager), nameof(AtlyssNetworkManager.OnStartServer))]
public static class AtlyssNetworkManager_OnStartServer {
public static void Prefix(ref AtlyssNetworkManager __instance) {
Melon.Logger.Msg("Called OnStartServer prefix");
}
}
}
}
ПРИМЕЧАНИЕ. Я считаю, что это может быть какая-то проблема со временем. У меня возникла эта ошибка при попытке использовать модуль UnityEngine JSON для анализа некоторого JSON, но перемещение анализа JSON из OnPreInitialization() в OnInitializeMelon() устранило эту конкретную проблему. Однако простая установка префикса для некоторых функций, как показано выше, по-прежнему вызывает проблему. Таким образом, проблема сохраняется.

Подробнее здесь: https://stackoverflow.com/questions/792 ... no-runtime
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»