none
Creando un ejecutable para macOS RRS feed

  • Question

  • Buneas:

    Haciendo código de ejemplo para pasarlo a un amigo que usa macOS que yo no tengo. Uso Windows 10 con Visual studio Community 2019.

    Quiero saber algunas cosas.

    1. ¿Dede Windows puedo crear archivos compatible con macOC?

    Por lo que dice abajo, parece que se puede crear tanto en macOS como en Linux, en este caso ahora estoy con macOS para entregarlo ha alguien y lo pruebe.

    2. Le he dado compilar y funciona, usa el archivo .exe. En macOS no tengo idea cual usa. ¿Qué archivo hay que enviar para que lo ejecute?

    3. El programa que debo compilar es este de abajo como ejemplo.

    using System;
    
    namespace Probando_macOS_01
    {
        class Program
        {
                static void Main(string[] args)
                {
                    // Título de la pantalla.
                    Console.Title = "Cambiar nombre";
    
                    // Tamaño de la ventana.
                    Console.SetWindowSize(20, 5);
    
                    Inicio();
                }
    
                private static void Inicio()
                {
    
    
                    ConsoleKey key;
                    do
                    {
                        int coordenadaX = 0;
                        char[] alfanumerico = new char[] { '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
                    'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N', 'Ñ', 'O', 'P',
                    'Q', 'R', 'S', 'T', 'U', 'V', 'X', 'Y', 'Z', 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h',
                    'i', 'j', 'k', 'l', 'm', 'n', 'ñ', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'x', 'y',
                    'z', '.', ',', '-', '_', ':', ';', '¿', '?', '(', ')', '[', ']', '{', '}','=', '$',
                    '&', '"', ' '};
                        int[] indiceArray = new int[] { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
                        string[] texto = new string[] { "ATRÁS", "GUARDAR" };
    
                        // Fondo verde.
                        Console.BackgroundColor = ConsoleColor.Blue;
    
                        // Letras negras.
                        Console.ForegroundColor = ConsoleColor.White;
    
                        Console.Clear();
    
                        Console.SetCursorPosition(0, 0);
                        Console.Write("Nombre del relé 1:");
                        Console.SetCursorPosition(0, 1);
                        Console.Write("AAAAAAAAAAAAAAAA");
                        Console.SetCursorPosition(2, 3);
                        Console.Write(texto[0]);
                        Console.SetCursorPosition(12, 3);
                        Console.Write(texto[1]);
    
                        while (true)
                        {
                            Console.SetCursorPosition(coordenadaX, 1);
    
                            key = Console.ReadKey(true).Key;
    
                            if ((key == ConsoleKey.RightArrow) && (coordenadaX < 15)) // Se cuanta del 0 al 15.
                            {
                                coordenadaX++;
                            }
                            else if ((key == ConsoleKey.LeftArrow) && (coordenadaX > 0))
                            {
                                coordenadaX--;
                            }
                            else if (key == ConsoleKey.UpArrow)
                            {
                                indiceArray[coordenadaX]++;
    
                                if (indiceArray[coordenadaX] >= alfanumerico.Length)
                                {
                                    indiceArray[coordenadaX] = 0;
                                }
    
                                Console.Write(alfanumerico[indiceArray[coordenadaX]]);
                            }
                            else if (key == ConsoleKey.DownArrow)
                            {
                                indiceArray[coordenadaX]--;
    
                                if (indiceArray[coordenadaX] < 0)
                                {
                                    indiceArray[coordenadaX] = alfanumerico.Length - 1;
                                }
    
                                Console.Write(alfanumerico[indiceArray[coordenadaX]]);
                            }
                        }
                    } while (key != ConsoleKey.Escape);
                }
        }
    }
    

    ¿Alguna diea?

    Saludos.


    http://electronica-pic.blogspot.com

    Sunday, April 5, 2020 9:47 PM

All replies

  • hola

    >>¿Dede Windows puedo crear archivos compatible con macOC?

    podrias ver de generarlo para mas de una plataforma

    How to Build Cross-Platform .NET Core Apps

    la idea es que definas el runtome y un location diferente para la publicacion para mac

    Lo que si deberias decidir si la publicacion sera dependiente del framework o auto contenida, por supuesto en esta ultima todos el net core framework formaria un unica publicacion con lo que no necesitarias instalar el framewor de net core en la mac del usuario, pero el resultado sera mas pesado en tamaño

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Monday, April 6, 2020 2:58 AM
  • Parece que lo logré, no genera extensión. Como el mac no lo entiendo mucho, pues...... Se lo envío así, ya que lo creo, en compilar.

    Lo que no se si incluye un emulador o algo para saber si funciona como si lo hace el .exe.


    http://electronica-pic.blogspot.com

    Monday, April 6, 2020 5:56 AM
  • hola

    >>no genera extensión.

    pero si defines el target y lo ubicas en una carpeta cuale s el contenido que deja esta al publicar?

    no hay extension, quizas deja solo una dll porque la idea es que se ejecute usando

    dotnet run nombreproyecto.dll

    Pero creo que depende si empaquetas autocontenido o no

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    Monday, April 6, 2020 11:45 AM
  • Hola , 

      

    ¿Alguna novedad sobre la consulta realizada? ¿Han sido útiles las  respuestas proporcionadas?  

     

    Espero su respuesta. 

      

    Cualquier duda referente a productos Microsoft, puedes consultarnos. Es un gusto informarte. 

    Gracias por usar los foros de MSDN. 

      

    Oscar Navarro

      

     ____ 

      

    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.   

    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.    

    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft. 

    Monday, April 6, 2020 4:54 PM
    Moderator
  • También soltó el Conosola_MacOS_01.dll.

    ¿La dll también lo ejecuta macOS?

    Que cosa más rara.

    ¿O hay que entregar los dos archivos, con dll y sin extensión?

    Edito:

    Envié todo y le sale esto.

    Unhandled exception. System.PlatformNotSupportedException: Operation is not supported on this platform.
       at System.ConsolePal.SetWindowSize(Int32 width, Int32 height)
       at System.Console.SetWindowSize(Int32 width, Int32 height)
       at Conosola_MacOS_01.Program.Main(String[] args) in C:\Users\Meta\source\repos\Conosola_MacOS_01\Conosola_MacOS_01\Program.cs:line 13
    Abort trap: 6
    logout
    Saving session...
    ...copying shared history...
    ...saving history...truncating history files...
    ...completed.
    
    [Proceso completado]


    http://electronica-pic.blogspot.com


    • Edited by Metaconta Monday, April 6, 2020 5:35 PM
    Monday, April 6, 2020 4:55 PM