-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Compilation ru RU
Компиляция - это процесс создания исполняемого файла. Это то, что вы хотите сделать, если хотите добавить свои собственные изменения в ASF или если по какой-либо причине вы не доверяете исполняемым файлам, указанным в официальных выпусках. Если вы пользователь, а не разработчик, скорее всего, вы хотите использовать уже предварительно скомпилированные двоичные файлы, но если вы хотите использовать свои собственные или узнать что-то новое, продолжайте читать.
ASF может быть скомпилирован на любой поддерживаемой платформе, если у вас есть все необходимые для этого инструменты.
Независимо от платформы, для компиляции ASF необходим полный .NET SDK (а не только среда выполнения). Инструкции по установке можно найти на странице загрузки .NET Core. Вам необходимо установить подходящую версию .NET SDK для вашей ОС. После успешной установки, команда dotnet
должна быть полностью работоспособна. Вы можете проверить, работает ли она, вызвав dotnet --info
. Также убедитесь, что ваш .NET SDK соответствует требованиям среде выполнения ASF.
Если у вас есть работоспособное .NET SDK нужной версии, просто перейдите в папку с исходниками ASF (клонированный или скачанный и распакованный репозиторий ASF) и запустите:
dotnet publish ArchiSteamFarm -c "Release" -o "out/generic"
Если вы используете MacOS/Linux, используйте вместо этого скрипт cc.sh
, который сделает то же самое, но несколько более сложным методом.
Если компиляция завершилась успешно, вы можете найти свой ASF в варианте source
в папке out/generic
. Это то же самое, что и официальная сборка ASF в варианте generic
, но в ней принудительно установлены равными 0
параметры UpdateChannel
и UpdatePeriod
, как и положено для самостоятельной сборки.
Вы также можете создать пакеты .NET для конкретных ОС, если у вас есть такая потребность. Обычно вы не должны этого делать, потому что вы только что скомпилировали вариант generic
, который вы можете запустить с уже установленной средой выполнения .NET, которую вы только что использовали для компиляции, но на случай, если вы этого хотите:
dotnet publish ArchiSteamFarm -c "Release" -o "out/linux-x64" -r "linux-x64" --self-contained
Разумеется, замените linux-x64
на нужное вам сочетание ОС и архитектуры, например win-x64
. Обновления этой сборки также будут отключены. Когда компилируется --self-conained
вы также можете использовать еще два параметра: -p:PublishTrimmed=true
в результате даёт сжатый билд, когда -p:PublishSingleFile=true
в результате даст один файл. Добавление обоих параметров приведет к тем же параметрам, которые мы используем для наших собственных сборок.
Хотя вышеперечисленные шаги являются всем, что требуется для полной рабочей сборки ASF, вы также возможно захотите собрать ASF-ui, наш графический веб-интерфейс. Все, что вам нужно с ASF, это скопировать результат сборки ASF-ui в стандартную директорию ASF-ui/dist
, а потом собрать ASF (опять-таки, если это необходимо).
ASF-ui является частью дерева ASF в виде ** git submodule **, убедитесь, что вы клонировали репозиторий с помощью git clone --recursive
, иначе у вас не будет необходимых файлов. Вам также понадобится рабочий NPM, с ним поставляется ** Node.js **. Если вы используете Linux/macOS, мы рекомендуем наш скрипт cc.sh
, который автоматически соберет и установит ASF-ui (если всё соответствует требованиям, которые мы только что упомянули).
В дополнение к скрипту cc.sh
, мы также приложим упрощенные инструкции по сборке ниже, см. ASF-ui repo для дополнительной документации. Из корневой директории ASF выполните следующие команды:
rm -rf "ASF-ui/dist" # ASF-ui не удаляется после старой сборки
npm ci --prefix ASF-ui
npm run-script deploy --prefix ASF-ui
rm -rf "out/generic/www" # Убедитесь, что выходные данные сборки не содержат старых файлов
dotnet publish ArchiSteamFarm -c "Release" -o "out/generic" # Или то что вам нужно, из указаного выше
Теперь вы сможете найти файлы ASF-ui в папке out/generic/www
. ASF сможет передать эти файлы вашему браузеру.
В качестве альтернативы вы можете просто собрать ASF-ui вручную или с помощью нашего репозитория, а затем вручную скопировать сборку в папку ${OUT}/www
, где ${OUT}
- это папка вывода ASF, которую вы указали с помощью параметра -o
. Именно это и делает ASF в процессе сборки: он копирует ASF-ui/dist
(если существует) в ${OUT}/www
, ничего особенного.
Если вы хотите изменить код ASF, для этой цели вы можете использовать любую совместимую с .NET IDE, хотя даже это необязательно, поскольку вы также можете редактировать код с помощью блокнота и компилировать его командой dotnet
, как описано выше.
Если у вас нет другого предпочтения, мы можем рекомендовать последнюю версию Visual Studio Code, которая подходит даже для более сложных задач. Разумеется, вы можете использовать любой инструмент по своему выбору, но для справки: мы используем JetBrains Rider для разработки ASF, хотя это платное решение.
Не гарантируется, что ветвь main
будет находиться в состоянии, позволяющем произвести успешную компиляцию, или даже безошибочную работу ASF, поскольку это ветвь в которой ведётся разработка, как указано в статье Цикл выпуска. Если вы хотите скомпилировать ASF из исходного кода, или сослаться на исходный код ASF в своём проекте, вам следует использовать для этого соответствующий тег, что гарантирует как минимум успешную компиляцию, и скорее всего - безошибочную работу (если эта сборка отмечена как стабильная). Чтобы проверить текущее «состояние» дерева, вы можете использовать наш CI - GitHub.
Официальные релизы ASF собираются с помощью GitHub с использованием последней версии .NET SDK, которая соответствует системным требованиям ASF. После успешного прохождения тестов, все пакеты загружаются в виде готового выпуска, также на GitHub. Это гарантирует прозрачность, поскольку GitHub всегда использует официальный публичный исходный код для всех сборок, и вы можете сравнить контрольные суммы артефактов GitHub с файлами выпуска на GitHub. Разработчики ASF не компилируют и не публикуют сборки самостоятельно, за исключением индивидуального процесса разработки и отладки.
In addition to the above, ASF maintainers manually validate and publish build checksums on independent from GitHub, remote ASF server, as additional security measure. Этот шаг является обязательным для ASF, чтобы считать выпуск как допустимого кандидата для функции автоматического обновления.
- 🏡 Главная
- 🔧 Конфигурация
- 💬 ЧАВО
- ⚙️ Настройка (начать здесь)
- 👥 Фоновая активация ключей
- 📢 Команды
- 🛠️ Совместимость
- 🧩 Плагин ItemsMatcherPlugin
- 📋 Управление
- ⏱️ Производительность
- 📡 Удаленная связь
- 👪 Steam Family Sharing
- 🔄 Обмены
- ⌨️ Аргументы командной строки
- 🚧 Устаревание
- 🐳 Docker
- 🤔 Расширенное ЧАВО
- 🚀 Конфигурация для высокой производительности
- 🔗 IPC
- 🌐 Локализация
- 📝 Журналирование
- 💾 Конфигурация для малого ОЗУ
- 🕵🏼♂️ Плагин мониторинга
- 🔌 Плагины
- 🔐 Безопасность
- 🧩 SteamTokenDumperPlugin
- 📦 Сторонние разработки
- 📵 Двухфакторная аутентификация