-
-
Notifications
You must be signed in to change notification settings - Fork 1.1k
Compilation tr TR
Derleme, yürütülebilir dosya oluşturma işlemidir. ASF'ye kendi değişikliklerinizi eklemek istiyorsanız ya da herhangi bir nedenden ötürü resmi sürümler ile sağlanan yürütülebilir dosyalara güvenmiyorsanız yapmak istediğiniz şey budur. Eğer kullanıcıysanız ve geliştirici değilseniz muhtemelen önceden derlenmiş dosyaları kullanmak istersiniz ama kendinizinkileri kullanmak ya da yeni birşeyler öğrenmek istiyorsanız okumaya devam edin.
ASF, bütün gerekli araçlara sahip olduğunuz sürece şu anda desteklenen herhangi bir platformda derlenebilir.
Platformdan bağımsız olarak, ASF'yi derlemek için tam .NET SDK'ya (not just runtime) ihtiyacınız vardır. Kurulum talimatları [.NET indirme sayfası] üzerinden adresinde bulunabilir. İşletim sisteminiz için uygun .NET SDK sürümünü yüklemeniz gerekir. Başarılı bir kurulumdan sonra, dotnet
komutu çalışır ve etkin olmalıdır. Çalışıp çalışmadığını dotnet --info
ile doğrulayabilirsiniz. Ayrıca .NET SDK'nızın ASF çalışma zamanı gereksinimleri ile eşleştiğinden emin olun.
NET SDK'nın çalışır durumda ve uygun sürümde olduğunu varsayarak, kaynak ASF dizinine gidin (klonlanmış veya indirilmiş ve paketinden çıkarılmış ASF deposu) ve çalıştırın:
dotnet publish ArchiSteamFarm -c "Release" -o "out/generic"
Linux/macOS kullanıyorsanız, bunun yerine biraz daha karmaşık bir şekilde aynı işlemi yapacak olan cc.sh
betiğini kullanabilirsiniz.
Derleme başarılı bir şekilde sona erdiyse, ASF'nizi out/generic
dizinindeki source
flavour içinde bulabilirsiniz. Bu, resmi generic
ASF derlemesiyle aynıdır, ancak kendi kendine derlemeler için uygun olan UpdateChannel
ve UpdatePeriod
değerlerini 0
olarak zorlar.
You can also generate OS-specific .NET package if you have a specific need. In general you shouldn't do that because you've just compiled generic
flavour that you can run with your already-installed .NET runtime that you've used for the compilation in the first place, but just in case you want to:
dotnet publish ArchiSteamFarm -c "Release" -o "out/linux-x64" -r "linux-x64" --self-contained
Of course, replace linux-x64
with OS-architecture that you want to target, such as win-x64
. This build will also have updates disabled. When building --self-contained
you can also optionally declare two more switches: -p:PublishTrimmed=true
will produce trimmed build, while -p:PublishSingleFile=true
will produce a single file. Adding both will result in the same settings we use for our own builds.
While the above steps are everything that is required to have a fully working build of ASF, you may also be interested in building ASF-ui, our graphical web interface. From ASF side, all you need to do is dropping ASF-ui build output in standard ASF-ui/dist
location, then building ASF with it (again, if needed).
ASF-ui is part of ASF's source tree as a git submodule, ensure that you've cloned the repo with git clone --recursive
, as otherwise you'll not have the required files. You'll also need a working NPM, Node.js comes with it. If you're using Linux/macOS, we recommend our cc.sh
script, which will automatically cover building and shipping ASF-ui (if possible, that is, if you're meeting the requirements we've just mentioned).
In addition to the cc.sh
script, we also attach the simplified build instructions below, refer to ASF-ui repo for additional documentation. From ASF's source tree location, so as above, execute the following commands:
rm -rf "ASF-ui/dist" # ASF-ui doesn't clean itself after old build
npm ci --prefix ASF-ui
npm run-script deploy --prefix ASF-ui
rm -rf "out/generic/www" # Ensure that our build output is clean of the old files
dotnet publish ArchiSteamFarm -c "Release" -o "out/generic" # Or accordingly to what you need as per the above
You should now be able to find the ASF-ui files in your out/generic/www
folder. ASF will be able to serve those files to your browser.
Alternatively, you can simply build ASF-ui, whether manually or with the help of our repo, then copy the build output over to ${OUT}/www
folder manually, where ${OUT}
is the output folder of ASF that you've specified with -o
parameter. This is exactly what ASF is doing as part of the build process, it copies ASF-ui/dist
(if exists) over to ${OUT}/www
, nothing fancy.
If you'd like to edit ASF code, you can use any .NET compatible IDE for that purpose, although even that is optional, since you can as well edit with a notepad and compile with dotnet
command described above.
If you don't have a better pick, we can recommend latest Visual Studio Code, which is sufficient for even more advanced needs. Of course you can use whatever you want to, for reference we use JetBrains Rider for ASF development, although it's not a free solution.
main
branch is not guaranteed to be in a state that allows successful compilation or flawless ASF execution in the first place, since it's development branch just like stated in our release cycle. If you want to compile or reference ASF from source, then you should use appropriate tag for that purpose, which guarantees at least successful compilation, and very likely also flawless execution (if build was marked as stable release). In order to check the current "health" of the tree, you can use our CI - GitHub.
Official ASF releases are compiled by GitHub, with latest .NET SDK that matches ASF runtime requirements. After passing tests, all packages are deployed as the release, also on GitHub. This also guarantees transparency, since GitHub always uses official public source for all builds, and you can compare checksums of GitHub artifacts with GitHub release assets. ASF developers do not compile or publish builds themselves, except for private development process and debugging.
In addition to the above, ASF maintainers manually validate and publish build checksums on independent from GitHub, remote ASF server, as additional security measure. This step is mandatory for existing ASFs to consider the release as a valid candidate for auto-update functionality.
- 🏡 Ana Sayfa
- 🔧 Yapılandırma
- 💬 SSS
- ⚙️ Kurulum (buradan başlayın)
- 👥 Arkaplan oyun etkinleştirici
- 📢 Komutlar
- 🛠️ Uyumluluk
- 🧩 ItemsMatcherPlugin Eklentisi
- 📋 Yönetim
- ⏱️ Performans
- 📡 Uzaktan iletişim
- 👪 Steam Aile Paylaşımı
- 🔄 Takas