Wie kann ich mehrere Instanzen von MonoDevelop auf dem Mac starten?

121

Ich möchte eine neue MonoDevelop-Instanz öffnen, um an einem anderen Projekt auf dem Mac zu arbeiten, und das Betriebssystem verhindert derzeit, dass ich eine neue Instanz öffne.

miguel.de.icaza
quelle

Antworten:

173

Wenn Sie auf einem Mac eine App geöffnet haben und versuchen, sie erneut zu starten, wechselt der Mac einfach zur geöffneten App. Sie können das Öffnen einer neuen Instanz erzwingen, indem Sie die Option "-n" an den Launcher übergeben. Führen Sie in einem Terminal aus

open -n /Applications/MonoDevelop.app

Beachten Sie auch, dass MonoDevelop mehrere Lösungen öffnen kann. Deaktivieren Sie dazu einfach das Kontrollkästchen "Aktuelle Lösung schließen" im Dialogfeld "Öffnen" oder halten Sie die Steuertaste gedrückt, wenn Sie auf eines der kürzlich geöffneten Projekte auf der Begrüßungsseite klicken.

BEARBEITEN: Für Xamarin Studio, das MonoDevelop auf dem Mac ersetzt hat, lautet der Befehl

open -n /Applications/Xamarin\ Studio.app

EDIT 2:

Für Visual Studio für Mac, das Xamarin Studio ersetzt hat, lautet der Befehl

open -n /Applications/Visual\ Studio.app
Mikayla Hutchinson
quelle
2
Hallo, ich verwende MonoDevelop 2.4 unter Mac OS und sehe dieses Kontrollkästchen oder das Verhalten der Steuerschlüssel nicht. Hat sich das kürzlich geändert?
David Moles
2
Funktioniert immer noch für mich. Beachten Sie, dass das Kontrollkästchen und der Hinweis auf der Begrüßungsseite nur angezeigt werden, wenn bereits eine Lösung geöffnet ist. Das Kontrollkästchen wird nur angezeigt, wenn Sie tatsächlich eine Lösung oder ein Projekt im Dialogfeld auswählen.
Mikayla Hutchinson
Aktualisieren Sie das Kontrollkästchen-Label, falls jemand dies findet. Dort steht jetzt "Aktuellen Arbeitsbereich schließen"
Tiago
Zu Ihrer Information: Wenn Sie diese Methode verwenden, werden die zusätzlichen Lösungen alle im selben Monoentwicklungsfenster geöffnet. Dies ist überhaupt nicht das, was ich von der Verwendung von VS / MD unter Windows erwartet habe. Anscheinend müssen wir auf die folgenden Methoden zurückgreifen, um separate Fenster für separate Lösungen zu erhalten.
David Jeske
2
Arbeitet immer noch in Xamarin Studio, obwohl ich immer noch den Verdacht habe, dass Miguel einen Softball geworfen hat : open -n /Applications/Xamarin\ Studio.app/ ; ^)
Ruffin
40

Die Verwendung der Shell zur Eingabe des Befehls, wie andere beschrieben haben, um eine zusätzliche Instanz zu starten, ist in Ordnung, aber ich bevorzuge ein Symbol auf dem Dock, auf das ich einfach klicken kann.

Es ist einfach zu tun:

  1. Öffnen Sie den AppleScript Editor und geben Sie Folgendes ein:

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

  2. Speichern Sie mit einem Namen wie "MonoDevelop Launcher" und geben Sie die Anwendung für das Dateiformat an.

  3. Ziehen Sie das Symbol auf Ihr Dock.

  4. Lesen Sie unbedingt den Kommentar von Bright zum Ersetzen des generischen Symbols durch das von MonoDevelop.

Klicken Sie wiederholt, um die Groovigkeit mehrerer MonoDevelop-Instanzen zu genießen.

Subfuzion
quelle
1
Die beste der beiden anderen Antworten zusammen
BlackTigerX
10
Um das Skriptstart-Symbol durch das MonoDevelop-Symbol zu ersetzen, können Sie den Paketinhalt öffnen und die Datei applet.icns durch das Monodevelop-Symbol ersetzen (aus dem MonoDevelop-Paketinhalt). Denken Sie daran, die Datei nach dem Kopieren in applet.icns umzubenennen .
hell
1
Perfekt! Vielen Dank an Subfuzion und an Bright für den Tipp zum Ersetzen von Symbolen.
Leigh Bowers
Guter Tipp von hell über das Ändern des Symbols. Lesen Sie auch die Antwort von Glinkot und den Kommentar von Luke zum Umgang mit dem Speicherplatz in Xamarin Studio, das MonoDevelop ersetzt.
Subfuzion
13

Der Einfachheit halber erstelle ich nur drei Kopien von MonoDevelop.

Markieren Sie MonoDevelop im Finder, kopieren, einfügen, benennen Sie die neue Kopie in "MonoDevelop-2" um und wiederholen Sie sie zu Ihrer Zufriedenheit.

Es hilft mir auch, den Überblick zu behalten, was in verschiedenen Fällen vor sich geht. Normalerweise halte ich mein wichtigstes Projekt in "MonoDevelop" offen, verwende "MonoDevelop-2" zum Testen von Ideen zu meinem Hauptprojekt und "MonoDevelop-3" zum zufälligen Scratchen.

Wenn Sie die Alt-Registerkarte (Open-Apple-Tab (Befehls-Tab (WHVR))) verwenden, wird der Name der ausführbaren Datei unter dem Symbol in der Anwendungsliste angezeigt. Solange ich mich an meine Konvention halte, weiß ich es immer (ish) den Inhalt der Instanz, auf die ich tippe, unabhängig davon, wie viele andere App-Fenster ich geöffnet habe. Ich muss nicht durch sie radeln, um es herauszufinden.

Es ist nicht perfekt - wenn "MonoDevelop" ausgeführt wird und ich versuche, einen der anderen zu starten, schlägt der erste Startversuch fehl. Sie versuchen einfach, es erneut zu starten - es funktioniert beim zweiten Mal. Dies ist jedoch erst seit dem letzten Build geschehen, und ich denke, es könnte etwas mit automatischen Updates oder der Verwaltung von Add-Ins zu tun haben. Ich habe nicht zu viel darüber nachgedacht. Da es keine Probleme gibt, mache ich mir darüber keine Sorgen :)

Das Ergebnis ist, dass Sie mit der Start-it-zweimal-Methode für jede zusätzliche Instanz von MonoDevelop, die Sie starten möchten, einen Vierfachklick anstelle eines Doppelklicks benötigen. Fügt dem Prozess ungefähr fünfzehn Sekunden hinzu, und da MonoDevelop (zusammen mit "MonoDevelop-1" und "MonoDevelop-2") ständig ausgeführt wird, summiert sich dies möglicherweise auf zusätzliche 30 Sekunden Arbeit pro Woche. Ein fairer Handel für die Bequemlichkeit, denkt.

Ein bisschen hacky, aber es hat gut für mich funktioniert.

Und all die coolen Kids machen es.

Rory Blyth
quelle
1
Großartige Idee! Funktioniert es immer noch, wenn Sie einen Symlink erstellen, anstatt ihn zu kopieren?
Mikayla Hutchinson
1
Die Startfehler sind ein bekannter Fehler beim erneuten Scannen der Add-In-Registrierung. Wenn MD feststellt, dass sich seine DLLs geändert oder "verschoben" haben, erstellt es die Add-In-Registrierung neu und stürzt danach manchmal ab. Es gibt eine Umgebungsvariable, die Sie festlegen können, damit ein anderer Registrierungsspeicherort verwendet wird, mit dem Sie die Registrierungen Ihrer drei Instanzen trennen können. Ich bin mir jedoch nicht sicher, wie Sie die Umgebungsvariablen pro App auf dem Mac festlegen würden. Möglicherweise muss es in das Skript MonoDevelop.app/Contents/macOS/MonoDevelop gepatcht werden.
Mikayla Hutchinson
Ich habe nichts anderes als nur das Kopieren versucht, obwohl Ihre Idee viel sinnvoller ist - Sie müssten sich nicht die Mühe machen, wenn Sie die neuesten MonoDevelop-Builds herunterladen. Wenn ich solche Dinge mache (schmutzige Lösungen für mich selbst erschaffe), neige ich dazu, den faulsten Weg zu gehen, um meine nerdlustigen Wege zu befriedigen. Aber jetzt will ich es wissen. Natürlich hätte ich es in viel kürzerer Zeit tun können, als ich brauchte, um diesen Kommentar zu schreiben ... Dies macht den Zweck meiner Faulheit zunichte. Ich muss gehen. Ich muss gehen und versuchen ...
Rory Blyth
Keine Ahnung, warum ich so lange auf eine Antwort gewartet habe - ich habe versucht, einen Symlink zu erstellen, sobald ich den obigen Kommentar geschrieben habe - hat nicht funktioniert: | OS X ließ sich nicht täuschen. Also mache ich immer noch meine Kopiersache. Aber hey - es funktioniert. Ich habe mir ein paar Möglichkeiten überlegt, es zu automatisieren und aussagekräftigere Informationen als nur -2, -3 usw. im Dateinamen für das Befehlstabellen durch Apps zu übermitteln, aber ich habe den Schwellenwert für Need> Laziness noch nicht erreicht, der dazu auffordert Ich baue meine Werkzeuge :)
Rory Blyth
6

--XAMARIN STUDIO--

Ab Februar 2013 heißt Monodevelop Xamarin Studio, und die Tatsache, dass es ein Leerzeichen enthält, bedeutet, dass das oben genannte nicht funktioniert. Einige Fummelei später habe ich festgestellt, dass Sie zwei Arten von Zitaten verschachteln müssen, und das Folgende funktioniert in Applescript:

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

Genießen

Glinkot
quelle
5
Es funktioniert, Sie müssen nur aus dem Raum entkommen, zBopen -n /Applications/Xamarin\ Studio.app
Luke
Noch ein Tipp, Sie müssen sich auch dem Backslash im Skript entziehen, wiedo shell script "open -n /Applications/Xamarin\\ Studio.app/"
Mick Byrne
6

Sie können auch eine kürzere Version verwenden:

Open -n -a "Xamarin Studio.app"

Bearbeiten : Für Visual Studio für Mac und / oder kürzer ist der Befehl

Open -n -a "Visual Studio"
Denis Gordin
quelle
3

Wenn Sie zwei Lösungen in einer Instanz von Xamarin Studio öffnen möchten, können Sie dies tun, indem Sie zu "Datei" -> "Letzte Lösungen" navigieren und dann bei gedrückter Strg-Taste auf die andere Lösung klicken. Dadurch werden beide Lösungen in derselben Instanz von Xamarin Studio geöffnet.

Willem
quelle
1

Bearbeiten Sie ~ / .bashrc oder ~ / .zshrc und konfigurieren Sie die folgende Verknüpfung:

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

Verwenden Sie wie folgt aus der CLI:

xam ReactiveUI.sln
Geoffrey Huntley
quelle
1

Ein einfacher Weg ....

Öffnen Sie einfach das Terminal. Ziehen Sie die Xamarin Studio-App aus der Anwendung, die den Pfad wie folgt verwendet, /Applications/Xamarin\ Studio.appund schreiben Sie das offene -n ​​vor das/Applications/Xamarin\ Studio.app

Jetzt ist der vollständige Befehl wie open -n /Applications/Xamarin\ Studio.app

Pritish
quelle
0

Öffnen Sie einfach den Befehl zum Schreiben des Terminals oder darunter. Sie können die Nummer des Instanznamens ändern, z. B. (/ Xamarin \ Studio1). Es wird ein anderes Xamarin Studio geöffnet, z. B. (/ Xamarin \ Studio1).

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

Mit oben können Sie eine beliebige .app-Mehrfachinstanz erstellen.

Patel Pankaj
quelle