Skip to content

Compilation ko KR

JustArchi edited this page Feb 18, 2019 · 42 revisions

컴파일

컴파일은 실행가능한 파일을 만드는 과정입니다. 만약 ASF에 자신이 만든 변경사항을 추가하고 싶거나 공식 **릴리스**에서 제공하는 실행파일을 무슨 이유에서건 신뢰하지 않는 경우 하게 됩니다. 만약 당신이 개발자가 아니라 사용자라면 대부분 이미 컴파일된 바이너리를 사용하길 원할겁니다. 하지만 자신만의 바이너리를 사용하고 싶거나 뭔가 새로운 것을 배우고 싶다면 계속 읽으시기 바랍니다.

ASF는 필요로 하는 도구를 모두 가지고만 있다면 현재 지원되는 어떠한 플랫폼에서도 컴파일 될 수 있습니다.


.NET Core SDK

ASF를 컴파일하려면 플랫폼과 상관없이 런타임뿐아니라 전체 .NET Core SDK가 필요합니다. **.NET Core 설치 페이지(영문)**에서 설치 방법을 찾을 수 있습니다. 당신의 OS에 맞는 .NET Core SDK 버전을 설치해야 합니다. 성공적인 설치 후에 dotnet 명령이 작동하고 실행되어야 합니다. dotnet --info 로 작동 여부를 확인할 수 있습니다. 또한 .NET Core SDK가 ASF의 **런타임 요구사항**과 일치하는지 확인하시기 바랍니다.


컴파일

Assuming you have .NET Core 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 "netcoreapp2.2" -o "out/generic" "/p:LinkDuringPublish=false"

리눅스나 OS X를 사용한다면, 대신 cc.sh 스크립트를 사용할 수도 있습니다. 이는 좀 더 복잡한 방식이지만 동일하게 동작합니다.

컴파일이 성공적으로 끝나면 ArchiSteamFarm/out/generic 디렉토리에 소스 맛으로 된 ASF가 있습니다. 이것은 공식 일반 ASF 빌드도 동일하지만, UpdateChannelUpdatePeriod0 값으로 되어있다는 점만 다릅니다.

OS 특화

특정한 필요가 있다면 OS 특화 .NET Core 패키지를 생성할 수도 있습니다. 일반적으로 처음에 컴파일에 사용한 기 설치된 .NET Core 런타임으로 실행 가능한 일반 맛을 방금 컴파일 했기 때문에 그럴일은 없습니다만, 만일 필요하다면 다음과 같이 입력하십시오.

dotnet publish ArchiSteamFarm -c "Release" -f "netcoreapp2.2" -o "out/linux-x64" -r "linux-x64" "/p:CrossGenDuringPublish=false"

Of course, replace linux-x64 with OS-architecture that you want to target, such as win-x64. 이 빌드도 업데이트가 비활성화됩니다.

.NET Framework

드문 경우지만 generic-netf 패키지를 빌드하려는 경우 대상 프레임워크를 netcoreapp2.2에서 net472로 변경할 수 있습니다. Keep in mind that you'll need appropriate .NET Framework developer pack for compiling netf variant, in addition to .NET Core SDK, so the below will work only on Windows:

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

In case of being unable to install .NET Framework or even .NET Core 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 /p:Configuration=Release /p:PublishDir=out/generic-netf /p:TargetFramework=net472 /p:ASFNetFramework=true /r /t:Publish ArchiSteamFarm

개발

ASF 코드를 편집하고 싶다면, 아무 .NET Core 호환 IDE나 사용할 수 있습니다. 옵션이긴 하지만 메모장으로 편집하고 위에서 설명한 dotnet 명령으로 컴파일 할 수도 있습니다. 하지만 윈도우의 경우 **최신버전의 Visual Studio**를 권장합니다. (무료 커뮤니티 버전이면 충분합니다) We also suggest to use it together with ReSharper (optionally), although it's not a free product.

리눅스나 OS X에서 ASF 코드 작업을 하고 싶다면 **최신 버전의 Visual Studio Code**를 추천합니다. 고전 Visual Studio만큼 풍족하진 않지만, 충분히 좋습니다.

물론 위의 모든 제안은 단지 권장사항일 뿐이고, 당신은 원하는 모든 것을 사용할 수 있지만, 결국 dotnet build 명령으로 귀결됩니다. 우리는 ASF 개발에 Visual Studio와 ReSharper, 그리고 repo에 있는 서드 파티 도구 일부를 사용합니다.


태그

master 분기는 한번에 성공적인 컴파일이나 흠없는 ASF 실행을 보장하는 상태가 아닙니다. 개발 분기는 **릴리스 주기**에 게시되어 있습니다. ASF를 소스에서 컴파일하려면 목적에 맞는 적절한 태그 를 사용해야 합니다. 이는 최소한 성공적인 컴파일을 보장하고, 안정 릴리스로 표시된 빌드는 거의 흠없는 실행도 가능합니다. 트리의 현재 "상태"를 체크하려면 AppVeyorTravis 등 CI를 사용하시기 바랍니다.


공식 릴리스

공식 ASF 릴리스는 윈도우에서 ASF의 **런타임 요구사항**과 일치하는 최신 .NET Core SDK를 사용하여 AppVeyor 로 컴파일됩니다. 테스트를 통과하면 모든 패키지는 GitHub에 배포됩니다. AppVeyor는 모든 빌드에 항상 공식 소스를 사용하므로 투명성을 보장하고, AppVeyor와 Github 에셋의 체크섬을 비교해볼 수 있습니다. ASF developers do not compile or publish builds themselves, except for private development process and debugging.

Clone this wiki locally