Skip to content

Сборка из исходников ​

bash
git clone https://github.com/TYWStudio/TML.git
cd TML
text
TYW Launcher/          Windows (VB.NET + WPF)
TYWLauncher-Linux/     Linux (C# + Avalonia)
TYWLauncher-macOS/     macOS (тот же код, что Linux)
TYWLauncher-Android/   Android (Kotlin)
PCLCS/                 общие компоненты
extensions/            SDK, примеры, упаковщик

Windows ​

bash
msbuild "TYW Launcher.sln" /t:Restore /p:Configuration=Release /m:1
msbuild "TYW Launcher.sln" /t:Build /p:Configuration=Release /m

Или скрипт (он же вставляет и восстанавливает адрес сервера):

bash
python _deploy/build.py Release Snapshot Debug
КонфигурацияКаналКонстанта
ReleaseСтабильныйRELEASE
SnapshotСнапшот(нет)
DebugБетаBETA

После переименования XAML-страниц

Удалите obj/Debug, obj/Release, obj/Snapshot перед сборкой, иначе MSBuild выдаст MC1000.

Linux ​

bash
cd TYWLauncher-Linux
dotnet publish src/TYW.Desktop -c Release -r linux-x64 --self-contained true \
  -p:TYWChannel=Release -o out/linux-x64

Для ARM: -r linux-arm64; канал: -p:TYWChannel=Snapshot|Beta.

macOS ​

bash
cd TYWLauncher-macOS
./packaging/build-macos.sh 1.1.37 arm64

.dmg создаётся только на macOS через hdiutil. Сборки Apple Silicon должны быть ad-hoc подписаны (codesign -s -). CI: .github/workflows/build-macos.yml.

Android ​

bash
cd TYWLauncher-Android
./gradlew assembleRelease

Расширения ​

bash
python extensions/pack.py extensions/examples/hello-go -o dist/hello-go.zip

Сервер ​

Сервера в этом репозитории нет: исходники закрыты, способ сборки не публикуется. Сервер нужно реализовать самостоятельно — см. Примечание.

Адрес сервера ​

text
настройка ServerUrl
  > переменная окружения TYW_SERVER
  > server.txt рядом с программой / в каталоге данных
  > константа BuiltInServerAddress (пустая по умолчанию)
bash
export TYW_SERVER_URL=https://your-server/
python _deploy/build.py Release Snapshot Debug

Скрипт меняет ModSecret.vb перед сборкой и восстанавливает после.

Проблемы сборки ​

СимптомРешение
MC1000 не найден xamlОчистить obj/*
MSB3027 / MSB3021 файл занятЗакрыть лаунчер или задать OUTDIR
Ошибка восстановления NuGetdotnet nuget locals all --clear
NuGet.targets path1 null на LinuxЭкспортировать SystemRoot, ProgramFiles, TEMP, NUGET_PACKAGES