Коллеги всем доброго времени суток!
Кто нибудь пробовал уже разрабатывать на системе ориентированной под linux?
Как там происходит разработка в ФС и отладка серверного кода, как подсоединятся к процессу и т.д., в общем весь тот процесс, что делаем на Windows?
Благодарю!
Нравится
Насколько понимаю, в версии на .NET Core, которая используется под Linux, сейчас возможности разработки ограничены. Там даже нет раздела «Конфигурация»:
Большинство инструментов разработки и кастомизации уже поддерживают работу на платформе .NET Core. Реализована поддержка Low-code инструментов: дизайнера процессов, мастера раздела, мастера деталей и мастера мобильного приложения.
Также поддерживают работу на платформе утилиты командной строки, которые помогают разрабатывать и автоматизировать процессы разработки: WorkspaceConsole, clio.
В процессе разработки поддержка раздела [Конфигурация]. Планируется также поддержка дизайнера объектов. Сейчас разработка этими инструментами может происходить на Windows, изменения, сделанные этими инструментами, переносятся пакетами на Linux.
Дмитрий Каплин,
В данном случае есть возможность провести отладку удалённо с Windows-машины. Рекомендуем использовать инструкцию ниже.
У вас на Linux развернут некий продукт (например по пути: '/home/user/creatioApps/Product'). В дальнейшем мы будем использовать пути, указанные для примера, у вас же будут свои пути.
Нужно:
1. На Linux по пути /home/user/creatioApps/Product/WorkspaceConsole/Terrasoft.Tools.WorkspaceConsole.dll.config
настраиваете конфигурационный файл, а именно соединение к базе данных, в секции <connectionStrings>.
Настройки соединения с базой данных можно скопировать с конфигурационого файла по пути /home/user/creatioApps/Product/ConnectionStrings.config
2. Для логов WorkspaceConsole на Linux создаете папку /home/user/creatioApps/Logs
3. На Linux переходите в папку /home/user/creatioApps/Product/WorkspaceConsole и запускаете следующую команду:
dotnet Terrasoft.Tools.WorkspaceConsole.dll -operation=UpdateWorkspaceSolution -workspaceName=Default -webApplicationPath="/home/user/creatioApps/Product" -confRuntimeParentDirectory="/home/user/creatioApps/Product" -logPath="/home/user/creatioApps/Logs" -autoExit=true
У Вас будут другие пути.
4. Файлы того же же продукта для Linux, который развернут на Linux, разместить на Windows (например, по пути: 'C:\Product').
Можно распаковать туда файлы из архива продукта для Linux.
5. Скопировать все файлы с Linux по пути /home/user/creatioApps/Product/Terrasoft.Configuration/Autogenerated/Src
на Windows машину по пути C:\Product\Terrasoft.Configuration\Autogenerated\Src
6. На Linux по пути /home/user/creatioApps/Product/Terrasoft.WebHost.dll.config
настраиваете конфигурационный файл, а именно меняете или добавлятете в секции <appSettings> следующую насройку:
<add key="LoadAssemblyFromByteArray" value="false" />
Таким образом включается отладка для конфигурационной сборки.
ВНИМАНИЕ: чтобы отладка работала, среда .Net загружает сборку по прямой ссылке, однако она тогда же и блокирует перезапись этой сборки,
а перезапись сборки происходит во время компиляции и установки пакетов.
Поэтому ОТКЛЮЧАЙТЕ ОТЛАДКУ НА ПРОДУКТОВОЙ СРЕДЕ и ПЕРЕД КОМПИЛЯЦИЕЙ или УСТАНОВКОЙ ПАКЕТОВ
7. Перезапустите приложение на Linux
8. На Windows открываете проект по пути "C:\Product\Terrasoft.Configuration\Terrasoft.Configuration.Dev.csproj"
9. Подсоединяетесь к процессу на Linux, по инструкции "Удаленная отладка .NetCore приложений в Linux под Windows.pdf", которая находится во вложении.
10. Находите необходимый Вам файл в C:\Product\Terrasoft.Configuration\Autogenerated\Src и устанавливаете точку остановки.
Среда разработки может отображать точку остановки, как недоступную для отладки, но пусть это Вас не смущает, она отработает когда поток выполнения попадет в эту точку.
Так же необходимо подключить vsdbg, для того чтобы MSVS могла подключиться к .net процессу.
Install vsdbg to remote host (following script install to ~/vsdbg)
curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
Тут есть два варианта, это пересобрать docker image, включив в него вышеописанную строку. Или каждый раз после перезапуска докера, выполнять команду:
docker exec -it curl -sSL https://aka.ms/getvsdbgsh | bash /dev/stdin -v latest -l ~/vsdbg
Интонируя данный прокси MSVS для отладки. Также можно воспользоваться Rider, он сам ставит нужный модуль, для отладки при первом подключении.
Добавить комментарий
Павел,
Можете ознакомиться с ответом выше.