Windows에서 ASP.NET Core를 소스에서 빌드하고 테스트

4872 단어 ASP.NET_Core
ASP.NET Core를 소스에서 빌드하고 유닛 테스트를 실행할 수 있게 하기까지의 비망록입니다.
Windows에서만 시도하고 있지만 macOS의 경우 아마 그렇게 곤란한 일도 없다고 생각합니다.
사용한 편집기는 Visual Studio Code(vscode)입니다.
2019/6/27 시점에서의 정보입니다.

참고: Build ASP.NET Core from Source

소스 다운로드


git clone --recursive https://github.com/aspnet/AspNetCore

필수 도구 설치


  • Windows 10, version 1803 or newer
  • At least 10 GB of disk space and a good internet connection (our build scripts download a lot of tools and dependencies)
  • Visual Studio 2019. h tps://ゔぃすあ lsつぢ오. 이 m
  • Git. htps://기 tscm. 오 rg
  • NodeJS. LTS version of 10.14.2 or newer htps : // 그래서 js. 오 rg
  • Java Development Kit 11 or newer.

  • Visual Studio2019의 필수 구성 요소와 JDK에 대한 다운로드를위한 스크립트가 제공됩니다.
    PowerSherll에서 ASP.NET Core를 다운로드한 폴더를 열고 다음 명령을 실행합니다.
    # VisualStudio 2019の必須コンポーネントインストール
    # デフォルトではEnterpriseが使用される
    PS> ./eng/scripts/InstallVisualStudio.ps1
    # Communityを使用する場合は引数にCommunityをつける
    PS> ./eng/scripts/InstallVisualStudio.ps1 Community
    
    # JDKのインストール
    PS> ./eng/scripts/InstallJdk.ps1
    

    빌드



    공식에서는 이하의 커멘드를 사용하면 좋다고 쓰여지고 있습니다만 자신의 환경에서는 잘 되지 않았습니다.
    .\restore.cmd
    

    .NET Core MSBuild를 사용하는 환경 변수VCTargetsPath를 설정하면 오류가 발생하지 않습니다.
    # "VCTargetsPath" に "C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\v140" をセットした状態で下記のコマンドを実行
    .\restore.cmd -ForceCoreMsBuild
    

    테스트



    vscode에서 열 때마다 PowerShell을 사용하여 다음 명령을 실행합니다.
    # 先頭の"."は必要なので注意
    . .\activate.ps1
    
    # グローバルなソリューションは存在しないのでソリューションが存在するフォルダを指定して開く
    code .\src\components
    

    이 상태에서 테스트 소스를 열면 Run Test 또는 Debug Test를 실행할 수 있습니다.
    (프로젝트를 분석하는 데 시간이 걸릴 수 있습니다. 문제가 있는지 여부는 문제 탭에서 확인하십시오.)



    덤 : AspNetCore-Tooling



    Razor 관련 소스의 대부분은 AspNetCore 리포지토리가 아닌 AspNetCore-Tooling 리포지토리에 있습니다.

    AspNetCore-Tooling의 테스트 방법은 기본적으로 위와 동일하지만 몇 가지 다른 부분이 있습니다.
    다음 사항에 유의하십시오.
    restore.cmd에서 -ForceCoreMsBuild 대신 -msbuildEngine dotnet를 지정합니다.
    .\restore.cmd -msbuildEngine dotnet
    

    디폴트의 ​​상태와 테스트에 .NET Framwork를 사용해 버려 디버그 할 수 없기 때문에 강제적으로 .NET Core를 사용시킨다.
    (적절하게 props 파일을 편집합니다.)

    src\Razor\test\Directory.Build.props
    <Project>
      <Import Project="$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory).., Directory.Build.props))\Directory.Build.props" Condition="'$([MSBuild]::GetDirectoryNameOfFileAbove($(MSBuildThisFileDirectory), Directory.Build.props))'!= ''" />
    
      <PropertyGroup>
        <ExcludeFromSourceBuild>true</ExcludeFromSourceBuild>
        <DeveloperBuildTestTfms>netcoreapp3.0</DeveloperBuildTestTfms>
        <StandardTestTfms>$(DeveloperBuildTestTfms)</StandardTestTfms>
    -   <StandardTestTfms Condition=" '$(DeveloperBuild)' != 'true' ">$(StandardTestTfms)</StandardTestTfms>
    -   <StandardTestTfms Condition=" '$(DeveloperBuild)' != 'true' AND '$(OS)' == 'Windows_NT' ">net461;$(StandardTestTfms)</StandardTestTfms>
      </PropertyGroup>
    </Project>
    

    좋은 웹페이지 즐겨찾기