【问题标题】:"Recent Solutions" List with multiple versions of MonoDevelop包含多个 MonoDevelop 版本的“最新解决方案”列表
【发布时间】:2011-09-27 15:18:16
【问题描述】:

我正在使用 Ubuntu 11.04,并且正在使用 MonoDevelop 2.4 进行 C# 和其他 CLI 开发。我正在使用这个版本,因为它在 repos 中提供。但是我刚刚构建了 MonoDevelop 2.6,主要是为了玩玩,看看有什么新功能,而且因为那是我在 Windows 上工作时的版本。

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

有人知道怎么改吗?我还不太了解 Ubuntu,而且我也不熟悉 MonoDevelop 的内部结构,如果这应该是显而易见的,请见谅。

【问题讨论】:

    标签: ubuntu monodevelop


    【解决方案1】:

    从昨天开始一直在挖掘 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文件的路径中,或者以其他方式添加它到文件的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 2011-12-01
      • 1970-01-01
      相关资源
      最近更新 更多