SourceTree 是一款拥有可视化界面的项目版本控制软件,适用于git项目管理,同时它集成了 git flow 工做流程,对于不熟悉 git 命令的初学者来讲,能够经过 SourceTree 快速学会使用 Git 和 git flow 来参与代码版本管理和团队协做开发。git
今日在全新的一台 win10 电脑上安装 SourceTree (2.3.1.0) 时没有安装成功,也没有任何错误提示,双击安装文件后,出下下图后,并未成功安装。github
通过 Google 后在 Stack Overflow 上发现这个问题: Source Tree doesn't launch after installationsegmentfault
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>app
If this is the cause, when you open the file, it will be full of <NULL> values.dom
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>\AppData\Local\Atlassian\SourceTree.exe_<random_string>\<version_number>
下的 user.config
后从新安装ui
按照上述办法尝试后发现仍然无效,因此只有另外想办法。this
本身作过四年的 .NET 开发,跑到了C:\Users\<User>\AppData\Local\Atlassian\SourceTree
目录下看了 sourcetree.log
日志信息:spa
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 就恢复正常了。