cxfksword / jellyfin-plugin-metashark

jellyfin电影元数据插件
GNU General Public License v3.0
1.16k stars 61 forks source link

编译插件手动安装后提示Not Supported,且无法进行任何设置 #47

Closed giveup closed 7 months ago

giveup commented 9 months ago

dotnet 6和 dotnet 7都尝试过了。 也尝试过把repo删掉,还是提示Not Supported,点击插件则提示不需要任何设置。

cxfksword commented 9 months ago

可以看下日志加载插件时提示什么错误

giveup commented 9 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.

看起来是不兼容,但是没看懂和什么不兼容。

cxfksword commented 9 months ago

你的jellyfin是什么版本? 不是手动安装的能不能用?

giveup commented 9 months ago

抱歉,忘记补充环境信息 .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安装的可以使用

cxfksword commented 9 months ago

你可以试下这个分支: 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出错了

giveup commented 9 months ago

是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)

cxfksword commented 9 months ago

看这错误消息是不是TMDbLib.dll没复制到插件文件夹?

giveup commented 9 months ago

重新确认了一次,确实已经把文件复制到插件文件夹 AngleSharp.dll AnitomySharp.dll ComposableAsync.Core.dll Jellyfin.Plugin.MetaShark.dll logo.png meta.json RateLimiter.dll TMDbLib.dll 但是权限和安装的不一样,也尝试用chown修改成一样的权限,问题依旧。

cxfksword commented 9 months ago

你试下切换回dotnet 6试下,TMDbLib唯一有影响的就是依赖的Newtonsoft.Json.dll版本和jellyfin默认的版本不一样,你或者再复制Newtonsoft.Json.dll到插件目录看下错误,我这边没法重现这问题😂

giveup commented 9 months ago

使用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.

``

cxfksword commented 9 months ago

AnitomySharp.dll也加载不了,建议你还是直接用发布版好了😂,可能你jellyfin环境配置有什么影响到了

giveup commented 9 months ago

其实想提交一个PR,本着负责的态度想本地测试好了再提交。 但是连加载这一关都过不去...

cxfksword commented 9 months ago

你可以修改后用github action编译的试下能不能

cxfksword commented 9 months ago

beta的流程可以手工执行,编译后的dll在artifact中

lwgm commented 8 months ago

编译的时候,选一下依赖库的版本,可能是自动拉取的版本的太新了,和你的Jellyfin对不上号。

github-actions[bot] commented 7 months ago

This issue was closed due to inactive more than 30 days. You can reopen it if you think it should continue.