Портирование приложения winform для запуска на Raspberry PI

У меня есть приложение aC# winform, которое я хочу портировать для запуска на моем новом Raspberry PI 3. Я нахожусь в режиме стона, потому что я думал, что мое приложение просто запустится. Это совсем не так. В моем приложении winform используется кварта.NET, библиотека aforge и общие библиотеки.net, такие как system.configuration, Я думал, что начну с моего класса регистрации, поскольку кто-то упомянул, что код, не относящийся к пользовательскому интерфейсу, должен быть легко конвертируемым, если что-то нужно будет изменить вообще. Похоже, мне придется изобретать велосипед. Чтобы быть точным для начала, взгляните на функцию ниже. Любой код, который использует system.configuration не будет работать. Есть ли более простой способ заставить мое приложение работать или мне нужно буквально конвертировать почти весь мой код. Будет ли библиотека aforge работать на PI? Quart.net будет работать? Сейчас я чувствую, что хочу сдаться и купить маленький компьютер с Windows, на котором установлены "правильные" окна.

C# Winform Code

class Logging
{

    public void Write_To_Log_File(String Message, String Procedure, String Error_Code, String Error_String)
    {
        try
        {
            // If the log file is bigger than allowed size then archive
            if (File.Exists(@ConfigurationManager.AppSettings["LogSavePath"]))
            {

                FileInfo file = new FileInfo(@ConfigurationManager.AppSettings["LogSavePath"]);
                if (file.Length > Convert.ToInt32(ConfigurationManager.AppSettings["FileLogSizeLimit"]))
                {
                    // Rename the file
                    File.Move(@ConfigurationManager.AppSettings["LogSavePath"], @ConfigurationManager.AppSettings["LogSavePath"] + string.Format("{0:yyyy-MM-dd_hh-mm-ss-tt}", DateTime.Now) + ".csv");
                }

            }
            // If log file does not exist then create it and add the headers
            if (File.Exists(@ConfigurationManager.AppSettings["LogSavePath"]))
            {
            }
            else
            {
                // Create the file
                System.IO.File.Create("LogSavePath");
                // Add data
                string[] Headers = { "Time" + "," + "_Message" + "," + "Procedure" + "," + "Error_Code" + "," + "Error_String" };
                System.IO.File.AppendAllLines(@ConfigurationManager.AppSettings["LogSavePath"], Headers);
            }
            if (File.Exists(@ConfigurationManager.AppSettings["LogSavePath"]))
            {
                string[] Log = { DateTime.Now.ToString() + "," + Message + "," + Procedure + "," + Error_Code + "," + Error_String };
                System.IO.File.AppendAllLines(@ConfigurationManager.AppSettings["LogSavePath"], Log);
            }

        }
        catch
        {

        }
    }
}

1 ответ

Для этой цели Microsoft запустила Windows 10 IoT Core Porting Tool. Это может помочь вам в переходе с приложений и библиотек Win32 на приложения Windows 10 IoT Core. Более подробная информация здесь: https://developer.microsoft.com/en-us/windows/iot/win10/tools/iotapiportingtool

Другие вопросы по тегам