Skip to content

Compilation zh HK

ArchiBot edited this page Nov 11, 2021 · 28 revisions

็ทจ่ญฏ

็ทจ่ญฏๆ˜ฏๅ‰ตๅปบๅฏๅŸท่กŒๆช”็š„้Ž็จ‹ใ€‚ ๅฆ‚ๆžœๆ‚จๆƒณๅฐ‡่‡ชๅทฑ็š„ๆ›ดๆ”นๆทปๅŠ ๅˆฐASF๏ผŒๆˆ–่€…ๅ‡บๆ–ผไปปไฝ•ๅŽŸๅ› ไธไฟกไปปๅฎ˜ๆ–น releases ไธญๆไพ›็š„ๅฏๅŸท่กŒๆช”๏ผŒๅ‰‡้œ€่ฆๅŸท่กŒๆญคๆ“ไฝœใ€‚ ๅฆ‚ๆžœๆ‚จๆ˜ฏๆ™ฎ้€š็”จๆˆถ่€Œไธๆ˜ฏ้–‹็™ผไบบๅ“ก๏ผŒๅ‰‡ๅพˆๅฏ่ƒฝ้œ€่ฆไฝฟ็”จๅทฒ้ ็ทจ่ญฏ็š„ไบŒ้€ฒไฝๆช”ๆกˆ๏ผŒไฝ†ๅฆ‚ๆžœๆ‚จๅธŒๆœ›ไฝฟ็”จ่‡ชๅทฑ็š„ไบŒ้€ฒไฝๆช”ๆกˆ๏ผŒๆˆ–ๅญธ็ฟ’ๆ–ฐๅ…งๅฎน๏ผŒ่ซ‹็นผ็บŒ้–ฑ่ฎ€ใ€‚

ๅช่ฆๆ‚จๆ“ๆœ‰ๆ‰€ๆœ‰้œ€่ฆ็š„ๅทฅๅ…ท๏ผŒ ๅณๅฏไปฅๅœจ็•ถๅ‰ๆ”ฏๆด็š„ไปปไฝ•ๅนณๅฐไธŠ็ทจ่ญฏASFใ€‚


.NET SDK

Regardless of platform, you need full .NET SDK (not just runtime) in order to compile ASF. Installation instructions can be found on .NET download page. You need to install appropriate .NET SDK version for your OS. ๆˆๅŠŸๅฎ‰่ฃๅพŒ๏ผŒdotnet ๅ‘ฝไปคๆ‡‰ๅฏๆญฃๅธธ้‹่กŒใ€‚ ๆ‚จๅฏไปฅ้ฉ—่ญ‰ๅฎƒๆ˜ฏๅฆ้ฉ็”จไบŽ < 0>dotnet-info</0 >ใ€‚ Also ensure that your .NET SDK matches ASF runtime requirements.


็ทจ่ญฏ

Assuming you have .NET SDK operative and in appropriate version, simply navigate to source ASF directory (cloned or downloaded and unpacked ASF repo) and execute:

dotnet publish ArchiSteamFarm -c "Release" -f "net6.0" -o "out/generic"

ๅฆ‚ๆžœๆ‚จๅœจไฝฟ็”จ Linux/OS X๏ผŒๆ‚จไนŸๅฏไปฅไฝฟ็”จ cc.sh ่…ณๆœฌๅฏฆ็พๅŒๆจฃ็š„ๆ•ˆๆžœ๏ผŒๆญค็จฎ็ทจ่ญฏๆ–นๆณ•ๆ–นๅผ็จ่ค‡้›œใ€‚

If compilation ended successfully, you can find your ASF in source flavour in out/generic directory. This is the same as official generic ASF build, but it has forced UpdateChannel and UpdatePeriod of 0, which is appropriate for self-builds.

OS-specific

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" -f "net6.0" -o "out/linux-x64" -r "linux-x64"

็•ถ็„ถ๏ผŒๆ‚จ้œ€่ฆๅฐ‡ linux-x64 ๆ›ฟๆ›ๆˆๆ‚จ้œ€่ฆ็š„็›ฎๆจ™ๆ“ไฝœ็ณป็ตฑๆžถๆง‹๏ผŒไพ‹ๅฆ‚ win-x64ใ€‚ ้€™ไธ€ๆง‹ๅปบไนŸๅฐ‡็ฆ็”จ่‡ชๅ‹•ๆ›ดๆ–ฐใ€‚

.NET ๆก†ๆžถ

In a very rare case when you'd want to build generic-netf package, you can change target framework from net6.0 to net48. Keep in mind that you'll need appropriate .NET Framework developer pack for compiling netf variant, in addition to .NET SDK, so the below will work only on Windows:

dotnet publish ArchiSteamFarm -c "Release" -f "net48" -o "out/generic-netf"

In case of being unable to install .NET Framework or even .NET SDK itself (e.g. because of building on linux-x86 with mono), you can call msbuild directly. You'll also need to specify ASFNetFramework manually, as ASF by default disables netf build on non-Windows platforms:

msbuild /m /r /t:Publish /p:Configuration=Release /p:TargetFramework=net48 /p:PublishDir=out/generic-netf /p:ASFNetFramework=true ArchiSteamFarm

้–‹็™ผ

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. ไธ้Ž๏ผŒๅฐๆ–ผ Windows ็ณป็ตฑ๏ผŒๆˆ‘ๅ€‘ๆŽจ่–ฆไฝฟ็”จโ€‹**ๆœ€ๆ–ฐ็‰ˆๆœฌ็š„ Visual Studio**๏ผˆๅ…่ฒป็š„็คพๅ€็‰ˆๅณๅฏ๏ผ‰ใ€‚

ๅฆ‚ๆžœๆ‚จ่ฆๅœจ Linux/OS X ไธŠ้–‹็™ผ ASF ไปฃ็ขผ๏ผŒๆˆ‘ๅ€‘ๆŽจ่–ฆไฝฟ็”จโ€‹**ๆœ€ๆ–ฐ็‰ˆ็š„ Visual Studio Code**ใ€‚ ๅฎƒๆฒ’ๆœ‰็ถ“ๅ…ธ็š„ Visual Studio ้‚ฃ้บผ่ฑๅฏŒ็š„ๅŠŸ่ƒฝ๏ผŒไฝ†ๅทฒ่ถณๅค ไบ†ใ€‚

็•ถ็„ถ๏ผŒไปฅไธŠ็š„ๆ‰€ๆœ‰ๅปบ่ญฐ้ƒฝๅƒ…ๅƒ…ๆ˜ฏๅปบ่ญฐ๏ผŒๆ‚จๅฏไปฅไฝฟ็”จๆ‚จๆƒณ็”จ็š„ไปปไฝ•ๅทฅๅ…ท๏ผŒๆœ€ๅพŒๆ‚จ้ƒฝ่ฆไฝฟ็”จ dotnet build ๅ‘ฝไปค้€ฒ่กŒๆง‹ๅปบใ€‚ 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 on Windows, 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 ้–‹็™ผไบบๅ“กไธๆœƒ่‡ช่กŒ็ทจ่ญฏๆˆ–็™ผไฝˆๆง‹ๅปบ็‰ˆๆœฌใ€‚

Clone this wiki locally