为什么使用 Wine 运行在 Linux 中的 TickTick (windows) 会导致“CreateDbFailed”

问题描述 投票:0回答:2

尝试在 Manjaro 中使用 wine 运行 TickTick (win x64) 时,

应用程序实际启动,

出现此错误,

Operation System Version-> 10.0.19043.0 ***** 
CurrentTime -> 01/30/2024 09:20:32 ***** 
Locale -> en-US ***** 
Device Location -> en-US ***** 
Version ->  ***** 
Exception Type -> System.NullReferenceException ***** 
Exception Message -> Object reference not set to an instance of an object ***** 
Exception Data -> System.Collections.ListDictionaryInternal ***** 
 ->  ***** 
 -> mscorlib ***** 
 -> Void Throw() ***** 
 ->   at ticktick_WPF.App.TryGetLocalSettings () [0x0002d] in <8f90307ac9cb436e9f50ce70ac9eac5c>:0 
  at ticktick_WPF.Util.Utils.LogTaskTimes (System.Threading.Tasks.Task task, System.Int32 maxMilliseconds, System.String startMessage, System.String warnMessage) [0x0008c] in <8f90307ac9cb436e9f50ce70ac9eac5c>:0 
  at ticktick_WPF.App.StartUpSafely (System.Windows.StartupEventArgs e, System.Boolean createdNew) [0x001cf] in <8f90307ac9cb436e9f50ce70ac9eac5c>:0 
  at ticktick_WPF.App.OnStartup (System.Windows.StartupEventArgs e) [0x000b2] in <8f90307ac9cb436e9f50ce70ac9eac5c>:0 
  at System.Runtime.CompilerServices.AsyncMethodBuilderCore+<>c.<ThrowAsync>b__7_0 (System.Object state) [0x00000] in <de4d51d88e3b4eea89a8d6a3a9854818>:0 
  at System.Windows.Threading.ExceptionWrapper.InternalRealCall (System.Delegate callback, System.Object args, System.Int32 numArgs) [0x000e7] in <75de555cd62f40719584e76ba8a177cc>:0 
  at System.Windows.Threading.ExceptionWrapper.TryCatchWhen (System.Object source, System.Delegate callback, System.Object args, System.Int32 numArgs, System.Delegate catchHandler) [0x00004] in <75de555cd62f40719584e76ba8a177cc>:0  ***** 

TLDR;我认为在 Wine 中创建数据库文件存在一些权限问题,因为它实际上启动了(带有错误)。

那么,谁能告诉我到底是什么导致了这个错误以及如何解决它?


我已经尝试将 AppData 文件从 Windows 安装复制粘贴到我的 Linux wine,但错误仍然存在。

(有linux版本为什么还要用windows? TickTick Windows 版本比 Linux 版本具有更多功能。并且可以离线工作,这是我最需要的。)

linux wine manjaro
2个回答
0
投票

可能有多种原因,请检查以下内容:

  • 确保您的 Wine 前缀具有创建数据库所需的权限。
  • 确保运行 Wine 的用户对 TickTick 的数据库位置具有写访问权限。
  • 使用
    winetricks
    安装缺少的库 - 如果有 -。
  • 测试另一个 Wine 版本。
  • 尝试备份数据库,然后将其删除,然后创建一个新数据库进行测试。

此外,请查看 wine 网站了解更多信息:


0
投票

这与数据库或权限无关。该应用程序中有一个名为 Bugsnag 的库,它需要某个 .NET 库才能运行,而 wine 中似乎不包含该库。

您最好的办法可能是在应用程序成功运行的 win 系统上搜索

System.Deployment.dll
并尝试将其复制到您的应用程序在 Linux 系统上启动的目录(或其他 DLL 所在的目录)。

顺便说一句,它似乎是一些自我更新的库,所以一旦启动可能会出现其他问题。

© www.soinside.com 2019 - 2024. All rights reserved.