Ubuntu &引用;最近的解决方案”;列出MonoDevelop的多个版本

Ubuntu &引用;最近的解决方案”;列出MonoDevelop的多个版本,ubuntu,monodevelop,Ubuntu,Monodevelop,我正在使用Ubuntu11.04,在C#和其他CLI开发中使用MonoDevelop 2.4。我使用这个版本,因为它是在回购协议中提供的。但我刚刚构建了MonoDevelop 2.6,主要是为了玩一下,看看有什么新功能,而且因为这是我在Windows上工作时的版本 总的来说,这两个人在一起玩得很好,但有一个地方他们分享了一些我不希望他们分享的数据——欢迎页面上的“最近的项目”列表。我更愿意让2.4只显示与该版本一起使用的项目,而2.6应该显示与其相关的项目。但就目前情况而言,2.4制作或使用的任

我正在使用Ubuntu11.04,在C#和其他CLI开发中使用MonoDevelop 2.4。我使用这个版本,因为它是在回购协议中提供的。但我刚刚构建了MonoDevelop 2.6,主要是为了玩一下,看看有什么新功能,而且因为这是我在Windows上工作时的版本

总的来说,这两个人在一起玩得很好,但有一个地方他们分享了一些我不希望他们分享的数据——欢迎页面上的“最近的项目”列表。我更愿意让2.4只显示与该版本一起使用的项目,而2.6应该显示与其相关的项目。但就目前情况而言,2.4制作或使用的任何项目都会出现在2.6的列表中,反之亦然


有人知道如何改变这一点吗?我还不太熟悉Ubuntu,我也不熟悉MonoDevelop的内部结构,如果这是显而易见的,我很抱歉。

从昨天开始,我一直在挖掘MonoDevelop 2.6.0.1的源代码,终于找到了必要的代码更改。如果有人感兴趣,我想我会把这个贴出来作为参考

原来MonoDevelop中的“欢迎页面”由
WelcomePage
addin表示。反过来,addin的可视面由类
MonoDevelop.WelcomePage.WelcomePageView
表示。这里有一个方法
GetRecentProjects()
,它实际检索要显示的项目列表

通过此方法,控件向下进入
RecentFileStorage
类中的
DefaultPath
属性,该属性提供默认情况下存储最近项目xml的位置。它的定义是

public static string DefaultPath {
    get {
        return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), ".recently-used");
    }
}
Environment.SpecialFolder.Personal
枚举值表示当前用户的个人文件夹;在我的例子中,它是
/home/ken
注意这里没有版本信息。这意味着“最近使用的文件”列表将始终引用文件
/home/ken/。最近使用的
,而不管您运行的是哪个版本的MonoDevelop。此外,文件的布局不支持多个版本,因此唯一的方法是重定向此文件的位置。通过将上述属性更改为

public static string DefaultPath {
    get {
        return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "MonoDevelop2_6", ".recently-used");
    }
}
在建造之前

我个人认为这类事情应该分开,因为这是一个简单的更改,我可能会推动将一些版本控制信息添加到最近使用的文件的路径中,或者将其添加到文件的内容中