2011-09-25 82 views
0

我正在使用Ubuntu 11.04,并且正在为我的C#和其他CLI开发使用MonoDevelop 2.4。我使用这个版本,因为它是在回购协议中提供的。但是我只是建立了MonoDevelop 2.6,主要是为了玩弄,看看有什么新东西,还因为这是我在Windows上工作时的版本。“最近的解决方案”列表与多个版本的MonoDevelop

到处都是,这两者在一起玩的很好,但是有一个地方他们分享了一些我不想分享的数据 - 欢迎页面上的“Recent Projects”列表。最好是,我想只有2.4版本的显示项目,而2.6版本应该显示与之相关的项目。但就目前来看,2.4所制作或使用的任何项目都出现在2.6的列表中,反之亦然。

有谁知道如何改变这种情况?我现在还不清楚Ubuntu的方式,但我对MonoDevelop的内部也不熟悉,所以很抱歉,如果这是显而易见的事情。

回答

0

从昨天开始直通了MonoDevelop 2.6.0.1源代码之后,我终于找到了必要的代码更改。我想我会把这个为了参考起见,以防有人感兴趣。

事实证明,MonoDevelop中的“欢迎页面”由WelcomePage插件代表。反过来,插件的视觉方面由类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/.recently-used,而不管您正在运行哪个版本的MonoDevelop。此外,文件的布局不适用于多个版本,因此唯一的方法是重定向此文件的位置。这很容易完成,通过将上述属性更改为像

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

之前建设。

我个人认为,这些事情应该分开,因为这是一个很容易改变我可能会推动一些版本信息被添加到.recently-used文件的路径,或以其他方式将其添加到该文件的内容。

相关问题