다음을 통해 공유


--no-restore를 사용하여 ReadyToRun 프로젝트를 게시하려면 복원을 변경해야 합니다.

--no-restore 외에도 -p:PublishReadyToRun=true(이)가 있는 프로젝트를 게시하는 경우 프로젝트는 이전 dotnet restore 작업에서 복원된 패키지만 사용하여 빌드됩니다. .NET 5에서 이 프로세스가 작동하여 crossgen의 이진을 생성했습니다. .NET 6에서는 NETSDK1094 오류와 함께 이 동일한 프로세스가 실패합니다.

도입된 버전

.NET 6

이전 동작

이전 버전에서는 crossgen 애플리케이션이 런타임과 함께 패키지되었습니다. 결과적으로 crossgen 프로세스는 프로젝트가 복원되었는지 여부에 관계없이 애플리케이션에서 실행할 수 있었습니다. dotnet restore(을)를 dotnet publish에서 분리하여 추가 네트워크 액세스가 발생하지 않도록 게시 명령에 --no-restore(을)를 추가하는 것이 일반적이었습니다.

새 동작

.NET 6에서는 NETSDK1094 오류와 함께 dotnet publish -p:PublishReadyToRun=true --no-restore(이)가 뒤에 오는 dotnet restore(은)는 실패합니다. 이는 crossgen 이진이 이제 별도의 NuGet 패키지로 제공되므로 게시가 성공하려면 복원 작업의 일부가 되어야 하기 때문입니다.

변경 이유

crossgen 이진은 많은 워크로드에 필요하지 않으므로 기본 SDK에서 분할되었습니다. 일반적으로 주문형으로 획득되며 게시 MSBuild 대상은 이제 복원할 패키지 목록에 패키지를 추가하여 이 획득을 처리합니다.

  • 격리된 게시 환경을 유지하려면 복원 단계에 ReadyToRun을 게시할 것임을 알립니다. 복원 명령줄에도 -p:PublishReadyToRun=true(을)를 추가합니다.
  • 또는 게시 명령줄에서 --no-restore(을)를 제거하여 게시 명령도 crossgen을 복원할 수 있도록 합니다.