我正在使用Ubuntu 11.04,我正在使用MonoDevelop 2.4进行C#和其他CLI开发。我正在使用这个版本,因为它是在回购中提供的。但我刚刚构建了MonoDevelop 2.6,主要是为了解决这个问题,看看有什么新内容,以及'因为这是我在Windows上工作时的版本。
到处都是,两人在一起玩得很好,但有一个地方他们分享了一些我宁愿不分享的数据 - 欢迎页面上的“Recent Projects”列表。我希望只有2.4版本的项目使用该版本,而2.6应该显示与之相关的项目。但就目前而言,2.4制作或使用的任何项目都会显示在2.6的列表中,反之亦然。
有谁知道如何改变这个?我不知道我在Ubuntu的方式还不错,而且我也不熟悉MonoDevelop的内部,所以很抱歉,如果这是显而易见的事情。
答案 0 :(得分:0)
从yestercday开始直接挖掘MonoDevelop 2.6.0.1源代码后,我终于找到了必要的代码更改。我想我会把它作为参考,以防万一有人感兴趣。
事实证明,MonoDevelop中的“欢迎页面”由WelcomePage
插件表示。反过来,插件的视觉方面由类MonoDevelop.WelcomePage.WelcomePageView
表示。这里有一个方法GetRecentProjects()
,它实际上检索要显示的项目列表。
通过此方法,控制向下到DefaultPath
类中的RecentFileStorage
属性,该属性默认情况下给出了最近项目xml的存储位置。它被定义为
public static string DefaultPath {
get {
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), ".recently-used");
}
}
Environment.SpecialFolder.Personal
枚举值表示当前用户的个人文件夹;就我而言,它是/home/ken
请注意,这里没有版本信息。这意味着最近的文件列表将始终引用文件/home/ken/.recently-used
,无论您正在运行哪个版本的MonoDevelop。此外,文件的布局不适用于多个版本,因此唯一的方法是重定向此文件的位置。通过将上述属性更改为
public static string DefaultPath {
get {
return Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Personal), "MonoDevelop2_6", ".recently-used");
}
}
在建造之前。
我个人认为这些事情应该是分开的,因为这是一个简单的改变,我可能会推动将某些版本信息添加到.recently-used
文件的路径中,否则它添加到文件的内容中。