以下为ET8.1下升级流程(已改为从2.17.1升级到3.5.0)
一、打开win下的命令行界面
1、执行命令:dotnet new classlib –framework “netstandard2.1” -o MongoDBUnity
注意–frameworks前是两个“-”,另外可选netstandard2.0或netstandard2.1,具体看本机安装版本
2、cd MongoDBUnity
3、dotnet add package MongoDB.Driver
4、发布Release版本:dotnet publish -c Release
二、将生成Dll复制到项目
1、移除旧版MongoDb.Driver,删除Assets\Plugins\MongoDb目录下所有内容,包括runtimes子目录的
2、将路径\MongoDBUnity\bin\Release\netstandard2.1\publish下的DnsClient.dll、Microsoft.Extensions.Logging.Abstractions.dll、MongoDB.Bson.dll、MongoDB.Driver.dll、SharpCompress.dll、Snappier.dll、System.Buffers.dll、System.Runtime.CompilerServices.Unsafe.dll、ZstdSharp.dll这9个Dll,复制到Unity的Plugins/MongoDB文件夹下
三、修改Unity/Assets/Scripts/Model/Share/MongoRegister.cs,将ET命名空间的类添加到信任列表才能序列化
1、引入using MongoDB.Bson.Serialization.Serializers;
2、在public static void Init()方法中的 registerIdGenerators.Invoke(null, Array.Empty<object>());行后添加以下语句
var objectSerializer = new ObjectSerializer(type => ObjectSerializer.DefaultAllowedTypes(type) ||
type.FullName.StartsWith("ET"));
BsonSerializer.RegisterSerializer(objectSerializer);
四、项目Nuget的升级
在vs2022或rider中,通过NuGet包管理,将MongoDb.Driver从2.17.1升级到3.5.0
大家有兴趣的升级尝试下,顺便看看行不行,有什么Bug不