如何在 Mac 上启动多个 MonoDevelop 实例?

Posted

技术标签:

【中文标题】如何在 Mac 上启动多个 MonoDevelop 实例?【英文标题】:How can I launch multiple instances of MonoDevelop on the Mac? 【发布时间】:2010-12-06 11:35:46 【问题描述】:

我想在 Mac 上打开一个新的 MonoDevelop 实例来处理不同的项目,但操作系统当前阻止我打开一个新实例。

【问题讨论】:

【参考方案1】:

在 Mac 上,如果您打开了一个应用程序并尝试再次启动它,Mac 只会切换到打开的应用程序。您可以通过将选项“-n”传递给启动器来强制它打开一个新实例。在终端中,运行

open -n /Applications/MonoDevelop.app

还请注意,MonoDevelop 能够打开多个解决方案。为此,只需取消选中“打开”对话框中的“关闭当前解决方案”复选框,或在欢迎页面中单击最近打开的项目之一时按住控制键。

编辑:对于已在 Mac 上取代 MonoDevelop 的 Xamarin Studio,命令为

open -n /Applications/Xamarin\ Studio.app

编辑 2:

对于已替换 Xamarin Studio 的 Visual Studio for Mac,命令为

open -n /Applications/Visual\ Studio.app

【讨论】:

嗨——我在 Mac OS 上运行 MonoDevelop 2.4,但我没有看到那个复选框或那个控制键行为。最近有变化吗? 仍然对我有用。请注意,欢迎页面中的复选框和提示仅在您已打开解决方案时才会出现,并且仅当您在对话框中实际选择解决方案或项目时才会出现复选框。 更新复选框标签以防有人发现它,它现在显示“关闭当前工作区” 仅供参考 - 如果您使用此方法,其他解决方案都将在同一个 monodevelop 窗口中打开......这根本不是我在 Windows 上使用 VS/MD 所期望的。显然我们必须求助于下面的方法来为单独的解决方案获取单独的窗口.. 仍在 Xamarin Studio 中工作,尽管我仍然怀疑 Miguel 投了垒球:open -n /Applications/Xamarin\ Studio.app/ ;^)【参考方案2】:

为方便起见,我只创建了三个 MonoDevelop 副本。

在 Finder 中突出显示 MonoDevelop,复制、粘贴、将新副本重命名为“MonoDevelop-2”,然后重复到您满意的程度。

它还可以帮助我跟踪不同情况下发生的情况。我通常在“MonoDevelop”中打开我最重要的项目,使用“MonoDevelop-2”来测试与我的主要项目相关的想法,并使用“MonoDevelop-3”来随机启动。

当您使用 alt-tab (open-Apple-tab (command-tab (whvr))) 时,可执行文件的名称会显示在应用程序列表中其图标下方,因此,只要我遵守约定,无论我打开了多少其他应用程序窗口,我总是知道(ish)我正在使用 alt-tabbing 的实例的内容。我不必循环通过它们来弄清楚。

这并不完美 - 当我运行“MonoDevelop”时,如果我尝试启动其他一个,第一次启动尝试将失败。您只是尝试再次启动它-它第二次起作用。不过,这只是在最近一次构建之后才发生的,我认为这可能与自动更新或加载项管理有关。没有仔细研究它。由于一旦启动并运行就没有问题,我不担心:)

结果是,使用 start-it-twice 方法,对于您想要启动的任何其他 MonoDevelop 实例,您最终不得不四次单击而不是双击。该过程增加了大约 15 秒,并且由于我一直在运行 MonoDevelop(以及“MonoDevelop-1”和“MonoDevelop-2”),它加起来,也许,额外的 30每周工作几秒钟。我认为,为了方便而进行的公平交易。

有点hacky,但对我来说效果很好。

所有酷孩子都在这样做。

【讨论】:

好主意!如果您创建符号链接而不是复制,它仍然有效吗? 启动失败是插件注册表重新扫描中的一个已知错误。当 MD 检测到其 dll 已更改或“移动”时,它会重建插件注册表,有时它会在此之后崩溃。您可以设置一个环境变量以使其使用不同的注册表位置,您可以使用它来分隔三个实例的注册表,但我不确定您如何在 mac 上设置每个应用程序的环境变量。可能必须将其修补到 MonoDevelop.app/Contents/macOS/MonoDevelop 脚本中。 我没有尝试过除了复制之外的任何东西,尽管你的想法更有意义——在获取最新的 MonoDevelop 构建时不必重复努力。当我做这样的事情(为自己创造肮脏的解决方案)时,我倾向于采取最懒惰的方式来满足我书呆子的方式。但现在我想知道。当然,我本可以在比我写这篇评论的时间少得多的时间内完成它......这违背了我懒惰的目的。我必须去。我得去试试…… 不知道为什么我等了这么久才回复这个问题——我一写完上面的评论就试着做一个符号链接——没有用:| OS X 没有被愚弄。所以我还在做我的复制工作。但是,嘿 - 它有效。我已经想到了一些自动化它的方法,并在文件名中传达更有意义的信息,而不仅仅是 -2、-3 等,以便通过应用程序进行命令选项卡,但我还没有达到需要 > 懒惰阈值提示我来构建我的工具:)【参考方案3】:

使用 shell 输入命令就像其他人描述的那样启动一个额外的实例很好,但我更喜欢在 Dock 上有一个我可以点击的图标。

这很容易做到:

    打开 AppleScript 编辑器并输入以下内容:

    do shell script "open -n /Applications/MonoDevelop.app/"

    使用 “MonoDevelop Launcher” 之类的名称保存,并确保为文件格式指定 Application

    将图标拖到停靠栏中。

    请务必查看以下 Bright 关于将通用图标替换为 MonoDevelop 的评论。

反复单击以享受多个 MonoDevelop 实例的美妙之处。

【讨论】:

其他两个答案中最好的一个 要将脚本启动器图标替换为 MonoDevelop 图标,您可以打开包内容,并将 applet.icns 文件替换为 monodevelop 图标(来自 MonoDevelop 包内容。)只需记住重命名复制后文件到applet.icns。 完美!感谢 Subfuzion,感谢 Bright 提供的图标替换提示。 来自 Bright 的关于更改图标的好建议。此外,请参阅 Glinkot 下面的答案和 Luke 关于在 Xamarin Studio 中处理空间的评论,它取代了 MonoDevelop。【参考方案4】:

--XAMARIN STUDIO--

截至 2013 年 2 月,Monodevelop 被称为 Xamarin Studio,它有一个空格的事实意味着上述内容不起作用。后来有些摆弄,我发现你需要嵌套两种类型的引号,下面将在applescript中工作:

do shell script "open -n '/Applications/Xamarin Studio.app/'"

享受

【讨论】:

它确实有效,您只需要转义空间,例如open -n /Applications/Xamarin\ Studio.app 还有一个提示,您还需要转义脚本中的反斜杠,例如do shell script "open -n /Applications/Xamarin\\ Studio.app/"【参考方案5】:

如果您可以在 Xamarin Studio 的一个实例中打开 两个解决方案,您可以通过导航到“文件”->“最近的解决方案”和然后 Ctrl+单击另一个解决方案。这将在 Xamarin 工作室的同一实例中打开这两个解决方案。

【讨论】:

【参考方案6】:

您可以通过制作 Xamarin Studio Launcher 的 redth(现为 Xamarin 员工)查看此应用程序:http://redth.codes/Xamarin-Studio-Launcher-v3/。没有代码可以发布,因为它是一个应用程序。但好消息是它为您打包在一个 .dmg 中。它甚至适用于 .sln 文件。 v4(2015 年 1 月 12 日)下载的硬链接:http://redth.codes/assets/Xamarin.Studio.Launcher.v4.zip。

【讨论】:

【参考方案7】:

编辑您的 ~/.bashrc 或 ~/.zshrc 并配置以下快捷方式:

alias xam = 'open -n /Applications/Xamarin\ Studio.app'

在 CLI 中使用如下:

xam ReactiveUI.sln

【讨论】:

【参考方案8】:

一种更简单的方法....

只需打开终端从应用程序中拖动 Xamarin Studio 应用程序,它将采用 /Applications/Xamarin\ Studio.app 之类的路径并在 /Applications/Xamarin\ Studio.app 之前写入 open -n

现在完整的命令就像open -n /Applications/Xamarin\ Studio.app

【讨论】:

【参考方案9】:

您也可以使用较短的版本:

Open -n -a "Xamarin Studio.app"

编辑:对于 Visual Studio for Mac 和/或更短的命令是

Open -n -a "Visual Studio"

【讨论】:

【参考方案10】:

只需打开终端写入或以下命令,您可以更改实例名称编号,例如(/Xamarin\ Studio1)它会打开另一个 Xamarin Studio,例如(/Xamarin\ Studio1)

$ open -na /Applications/Xamarin\ Studio.app --args -DataPath /Users/$(whoami)/Library/Application\ Support/Xamarin\ Studio1

使用上面你可以创建任何 .app 多个实例。

【讨论】:

以上是关于如何在 Mac 上启动多个 MonoDevelop 实例?的主要内容,如果未能解决你的问题,请参考以下文章

我缺少啥来阻止 Beep 在我的 Mac 10.5.8 上响起(使用 MonoDevelop 2.8.8.2)?

发布使用 MonoDevelop 制作的应用程序

Monodevelop 不会在 Mint 17 中启动

如何在 Ubuntu 上安装最新版本的 Mono 和 MonoDevelop?

Mac 应用程序包能够启动多个实例

如何从 mac 上的 node.js 脚本启动电子应用程序?