kann man in C# eine Konsolenanwendung für den OSX mahen?

Hallo zusammen

Ich bin in C# VS relativ neu. Habe ein ca. 3500 Zeilen-Programm mit vielen Klassen etc. gemacht. Funktioniert alles super und ist getestet.

Ca. 80% der Consolen-App habe ich auf dem Mac programmiert, 20% auf meinem Windowsrechner. Ich bin also heterogen unterwegs. Soweit so gut.

Eine .exe kann ich problemlos erstellen. Auf Windows auch entsprechend problemlos auszuführen. Wenn ich das auf dem Mac laufen lassen möchte, mache ich:

  • a) die Konsole auf
  • b) navigiere zur ProgrammXY.dll
  • c) gebe dotnet ProgrammXY.dll ein

und das Ding läuft. Nur!!!!!!!!!!!!..... Das möchte ich so nicht!

Ich habe aktuell den Fall, dass meine Schwester (auch Mac-Anwenderin) genau jetzt die App benötigt. Die Löst ein Problem welche sie (und das ist Zufall des Jahrhunderts) hat.

Ich möchte ihr die Consolen-App analog zu Windows auf einem USB-Stick o.ä. übergeben können, sodass sie mit einem einfachen DOPPELKLICK das Ding starten und verwenden kann. Ich möchte keine UI darum herum bauen und ich möchte nicht ins Web damit. Auch soll sie ihren Rechner nicht fit für dotnet machen müssen. Ich will die App auf der Konsole haben. Sowohl auf Mac als auch auf Windows. Genau gleich einfach.

Nun die Frage:
Kann man das überhaupt? ich finde keinerlei sinnvolle Anleitungen oder Antworten. Bei Stackoverflow werde ich angepöbelt und bei MS selber kann ich im DEV-Forum keine Fragen stellen.

Ich möchte nur wissen ob das überhaupt geht damit ich mit der Fragerei und Suche aufhören kann oder andere Wege / Technologien angehen kann.

Grüsse euch und danke schonmal.

Computer, Technik, programmieren, C Sharp, dotNet, Informatik, Softwareentwicklung, Technologie, konsolenanwendung, Visual Studio 2019
LiveCharts dynamische Achsen Bezeichnung?

Ich versuche mit LiveCharts ein Graph in Windows Forms zu erstellen, so weit geht erstmal alles. Allerdings würde ich gerne die Bezeichnungen der X Achse per Knopfdruck ändern können.

Die Daten für den Graph kommen aus einer .txt Datei und diese ist nicht immer gleich lang. Ich lese eine Zeit YYYY-MM-DD HH:MM:SS,0000 und einen Wert als String aus. Und jetzt würde ich gerne in meiner CartesianChart von LiveCharts die Eigenschaften von "Labels" ändern, die angibt, welche Werte auf der X Achse stehen. Ich habe bereits ein Array "zeit" in dem alle Zeiten stehen, die ich brauche.

die Achsen des Graphs wird folgendermaßen erzeugt:

chart1.AxisX.Add(new Axis
{
  Separator = new Separator
  {
    Step = 1
  },
  Title = "Numbers",

Hier werden jetzt die Werte der X Achse fest gelegt

Ich habe gerade 1-10 definiert weil ich ein test gemacht hatte wie oft welche Zahl durch die Random Funktion bei 100.000 Durchläufen erzeugt wird

Ich hätte halt die Zeiten aus der Datei gerne drin stehen

  Labels = new[] {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10" }

Quasi Labels = new[] {"2022-03-26 22:31:25,0000", "2022-03-26 22:31:30,0000", ...}

da ich diese aber auslesen muss weiß ich nicht wie ich die hier einfüge.

});

chart1.AxisY.Add(new Axis
{
  Title = "Count",
  Separator = new Separator
  {
    Step = 100
  }
});

das Array "zeit" ist einfach nur ein String[] Array, Eindimensional, und enthält alle Zeiten, die ich brauche.

so sieht dann der Graph aus. Links halt die Werte die ich haben möchte und unten halt das, was ich bei "Labels" definiert habe.

Ich benutze Visual Studio 2019, Windows Forms und .Net Core 3.1

Ich Hoffe mir kann jemand weiter helfen.

Bild zum Beitrag
Computer, Technik, C Sharp, Technologie, Windows Forms, Visual Studio 2019
C# StringBuilder Werte separieren?

Folgendes:
Ich möchte aus hostname.DisplayName die 2 Werte (HostName und IP-Addresse) seperat in einem eigenen String haben... leider kommen aus hostname.DisplayName beide Werte gleichzeitig aus...

Wie kann ich diese am besten trennen?

Hier das Ergebnis:

Der Code:

StringBuilder clientListMACAddress = new StringBuilder();
                    StringBuilder clientListHostname = new StringBuilder();
                    StringBuilder clientListIPAdress = new StringBuilder();


                    var currentClients = tetheringManager.GetTetheringClients().ToArray();
                    foreach(var client in currentClients)
                    {
                        //MessageBox.Show(client.MacAddress);
                        //string MACAddress = client.MacAddress;
                        clientListMACAddress.AppendLine(client.MacAddress);
                        foreach (var hostname in client.HostNames)
                        {
                            clientListHostname.AppendLine(hostname.DisplayName);
                            //clientListIPAdress.AppendLine(hostname.DisplayName);
                            
                        }
                    }
                    MessageBox.Show("MAC: " + clientListMACAddress.ToString() + " HOST: " + clientListHostname.ToString() + " IP: " + clientListIPAdress.ToString());

Vielen dank im Voraus :)

Mit freundlichen Grüßen

Bild zum Beitrag
Computer, Windows, Microsoft, C Sharp, Informatik, Visual Studio, .net-Framework, Visual Studio 2019
Wie kann ich Text in einer Variable in C# speichern, ohne ihn zu entfernen, wenn ich zurück in die Main Methode komme?

Hey, ich habe vor ein paar Tagen angefangen C# zu lernen und versuche nun einige einfache Programme für Anfänger zu programmieren. Der Taschenrechner hat schon funktioniert jedoch scheitert es jetzt bei einem Schreibprogramm, was den Text temporär in einer Variable der Konsole speichern soll und wieder aufrufbar ist.

Am Anfang meine Codes, habe ich 4 String Variablen als Speicherplatz festgelegt. Wie diese aussehen, sieht man auf dem Bild.

Nun muss der Nutzer angeben, ob er einen neuen Text speichern oder ein vorhandenes Dokument öffnen will. Will er ein neues speichern wird mit Hilfe einer If-Abfrage geschaut, welche von den 4 Variablen noch leer ist.

...darunter sind mit "else if" noch die anderen Speicherplätze festgelegt.

Nach einer Eingabe wird der Text in dem String gespeichert und man gelangt zurück zur Main Methode, wo dann allerdings wieder das, was in die Variable eingetragen wurde gelöscht wird, da ich den Variablen ja einen Startwert zuweisen musste. (sieht man auf dem Bild) ich kann die variablen auch nicht später der Eingabe direkt zuweisen, da die Konsole erst überprüfen muss, welche Variable noch frei ist.

Ich hoffe es ist verständlich, was mein Problem ist und jemand kann mir weiterhelfen.

Vielen Dank schon mal im Voraus!

Bild zum Beitrag
Computer, Software, Technik, programmieren, C Sharp, Technologie, Visual Studio 2019

Meistgelesene Fragen zum Thema Visual Studio 2019