Closed giveup closed 7 months ago
可以看下日志加载插件时提示什么错误
可以看下日志加载插件时提示什么错误
日志显示Failed to load assembly "/share/CACHEDEV1_DATA/.qpkg/jellyfin/database/plugins/MetaShark_1.7.1.0/Jellyfin.Plugin.MetaShark.dll". This error occurs when a plugin references an incompatible version of one of the shared libraries. Disabling plugin. System.Reflection.ReflectionTypeLoadException: Unable to load one or more of the requested types.
看起来是不兼容,但是没看懂和什么不兼容。
你的jellyfin是什么版本? 不是手动安装的能不能用?
抱歉,忘记补充环境信息 .NET SDK: Version: 7.0.100 Commit: e12b7af219
Runtime Environment: OS Name: Mac OS X OS Version: 13.5 OS Platform: Darwin RID: osx.13-x64 Base Path: /usr/local/Cellar/dotnet/7.0.100/libexec/sdk/7.0.100/ Jellyfin 版本 10.8.10 x64 从repository安装的可以使用
你可以试下这个分支: https://github.com/cxfksword/jellyfin-plugin-metashark/tree/norepack
需要同时复制下面的几个dll到插件文件夹:
Jellyfin.Plugin.MetaShark.dll
RateLimiter.dll
ComposableAsync.Core.dll
TMDbLib.dll
AngleSharp.dll
AnitomySharp.dll
正常再出错的话,应该会提示哪个dll出错了
是TMDbLib无法加载
System.IO.FileLoadException: Could not load file or assembly 'TMDbLib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null'. Could not find or load a specific file. (0x80131621) File name: 'TMDbLib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null' ---> System.IO.FileLoadException: Could not load file or assembly 'TMDbLib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null'. at System.Runtime.Loader.AssemblyLoadContext.LoadFromPath(IntPtr ptrNativeAssemblyLoadContext, String ilPath, String niPath, ObjectHandleOnStack retAssembly) at System.Runtime.Loader.AssemblyLoadContext.LoadFromAssemblyPath(String assemblyPath) at System.Reflection.Assembly.LoadFrom(String assemblyFile) at System.Reflection.Assembly.LoadFromResolveHandler(Object sender, ResolveEventArgs args) at System.Runtime.Loader.AssemblyLoadContext.InvokeResolveEvent(ResolveEventHandler eventHandler, RuntimeAssembly assembly, String name)
看这错误消息是不是TMDbLib.dll没复制到插件文件夹?
重新确认了一次,确实已经把文件复制到插件文件夹
AngleSharp.dll AnitomySharp.dll ComposableAsync.Core.dll Jellyfin.Plugin.MetaShark.dll logo.png meta.json RateLimiter.dll TMDbLib.dll
但是权限和安装的不一样,也尝试用chown修改成一样的权限,问题依旧。
你试下切换回dotnet 6试下,TMDbLib唯一有影响的就是依赖的Newtonsoft.Json.dll版本和jellyfin默认的版本不一样,你或者再复制Newtonsoft.Json.dll到插件目录看下错误,我这边没法重现这问题😂
使用dotnet6编译,且复制Newtonsoft.Json.dll到插件目录,目前插件显示Malfunctioned 日志显示 `` [2023-09-17 18:44:02.058 +08:00] [ERR] [1] Emby.Server.Implementations.Plugins.PluginManager: Failed to load assembly "/share/CACHEDEV1_DATA/.qpkg/jellyfin/database/plugins/MetaShark_1.7.2.0/TMDbLib.dll". Disabling plugin. [2023-09-17 18:44:02.088 +08:00] [INF] [1] Emby.Server.Implementations.Plugins.PluginManager: Loaded assembly "AngleSharp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=e83494dcdc6d31ea" from "/share/CACHEDEV1_DATA/.qpkg/jellyfin/database/plugins/MetaShark_1.7.2.0/AngleSharp.dll" [2023-09-17 18:44:02.088 +08:00] [ERR] [1] Emby.Server.Implementations.Plugins.PluginManager: Failed to load assembly "/share/CACHEDEV1_DATA/.qpkg/jellyfin/database/plugins/MetaShark_1.7.2.0/AnitomySharp.dll". Disabling plugin.
``
AnitomySharp.dll也加载不了,建议你还是直接用发布版好了😂,可能你jellyfin环境配置有什么影响到了
其实想提交一个PR,本着负责的态度想本地测试好了再提交。 但是连加载这一关都过不去...
你可以修改后用github action编译的试下能不能
beta的流程可以手工执行,编译后的dll在artifact中
编译的时候,选一下依赖库的版本,可能是自动拉取的版本的太新了,和你的Jellyfin对不上号。
This issue was closed due to inactive more than 30 days. You can reopen it if you think it should continue.
dotnet 6和 dotnet 7都尝试过了。 也尝试过把repo删掉,还是提示Not Supported,点击插件则提示不需要任何设置。