简介
SourceTree 是一款拥有可视化界面的项目版本控制软件,适用于git项目管理,同时它集成了 git flow 工作流程,对于不熟悉 git 命令的初学者来说,可以通过 SourceTree 快速学会使用 Git 和 git flow 来参与代码版本管理和团队协作开发。
问题
今日在全新的一台 win10 电脑上安装 SourceTree (2.3.1.0) 时没有安装成功,也没有任何错误提示,双击安装文件后,出下下图后,并未成功安装。
解决
经过 Google 后在 Stack Overflow 上发现这个问题: Source Tree doesn't launch after installation
CauseThe most likely reason for this error is that the user.config file for SourceTree has been corrupted. You can confirm this by locating the file in this location: C:Users<User>AppDataLocalAtlassianSourceTree.exe_<random_string><version_number>
If this is the cause, when you open the file, it will be full of <NULL> values.
Resolution
If the user.config file is indeed corrupted, you may delete it. It will be regenerated the next time you start SourceTree, and the application should start normally.
看起来解决办法就是删除 C:Users<User>AppDataLocalAtlassianSourceTree.exe_<random_string><version_number>
下的 user.config
后重新安装
按照上述办法尝试后发现仍然无效,所以只有另外想办法。
自己做过四年的 .NET 开发,跑到了C:Users<User>AppDataLocalAtlassianSourceTree
目录下看了 sourcetree.log
日志信息:
ERROR [2018-03-17 20:27:06,785] [3] [SourceTree.App] [.ctor] - finish EnsureSquirrelExecutionStubIsCopied
ERROR [2018-03-17 20:27:07,491] [4] [SourceTree.App] [OnStartup] - Failed to start
System.NullReferenceException: 未将对象引用设置到对象的实例。
在 SourceTree.Notifications.NotificationsManager.SetOwner(NotificationDialogWindow notificationWindow)
在 SourceTree.Notifications.NotificationsManager.ShowNotificationDialog[T](NotificationDialogWindow notificationWindow, Tuple`2 customAction, VistaTaskDialogIcon icon)
在 SourceTree.Notifications.NotificationsManager.ShowNotificationDialog[T](String title, String message, Tuple`2 customAction, String cancelLabel, String suppressionSetting, Action`1 suppressionChangedAction, Object contentControl, String contentCommandLabel, Action contentAction)
在 SourceTree.Notifications.NotificationsManager.ShowNotificationDialogWithYesConfirmation(String title, String message, String details)
在 SourceTree.Configuration.WpfSpellCheckerPreFlightCheck.Run()
在 SourceTree.AppRoot.RunPreFlightChecks()
在 SourceTree.AppRoot.OnStartup(StartupEventArgs e)
在 SourceTree.App.OnStartup(StartupEventArgs e)
哈哈,发现了 Wpf
的身影,自己还在 10 年左右用 WPF 开发过应用,很亲切的感觉。
既然是微软系技术做的工具,肯定是需要 .NET Framework 支持的,因此跑去微软官网 https://www.microsoft.com/net...重新安装最新的 .net framework.
然后重新安装 SourceTree 就恢复正常了。