Visual Studio 2019에서 ASP.NET Core 3.1 사이트를 Azure에 게시하는 동안 오류가 발생했습니다.


9

모듈을 사용하여 Azure App Service에 성공적으로 배포 된 기존 ASP.NET Core 3.0 응용 프로그램이 있습니다. 응용 프로그램을 ASP.NET Core 3.1 (오늘의 릴리스)로 업그레이드 한 후 응용 프로그램은 로컬 버전의 IIS Express 에서 올바르게 빌드되고 실행됩니다 . 그러나 (오늘의 릴리스) Visual Studio 16.4를 사용하여 Azure App Service에 게시하려고 하면 다음 오류가 발생합니다.AspNetCoreModuleV2

자산 파일 'C : \ Project \ obj \ project.assets.json'에 '.NETCoreApp, Version = v3.0'에 대한 대상이 없습니다. 복원이 실행되었고 프로젝트의 TargetFrameworks에 'netcoreapp3.0'이 포함되어 있는지 확인하십시오.

노트

  • 모든 <PackageReference>'을이야 Microsoft.AspNetCore, Microsoft.EntityFrameworkCoreMicrosoft.Extensions업데이트되었습니다3.1.0
  • 내 솔루션을 정리 obj하고 느린 참조가 없도록 폴더를 숨겼습니다 .
  • 이 오류는의 3.1.100버전 에서 생성되고 Microsoft.PackageDependencyResolution.targets있습니다.

그 얻을 무언가가 여전히에 걸려있다 .NET 코어 3.0 종속. 그러나 왜 이것이 배포 중에 문제를 일으키는 지 확실하지 않습니다. 있습니까 푸른 앱 서비스가있어 아직 준비가되지 .NET 코어 3.1 ? 아니면 종속성 해결 대상에 문제가 있습니까?


태그를 지정해 주신 @Panagiotis Kanavos에게 감사합니다 asp.net-core-3.1. 새 태그를 만드는 데 필요한 명성이 부족했습니다.
Jeremy Caney '12

분명히 다음 단계는 새로운 ASP.NET Core 3.1 프로젝트 템플릿 으로 시작 하고 새로운 Azure App 서비스 에 배포 한 다음 문제를 재현 할 수있을 때까지 종속성을 다시 도입하는 것입니다. 이번 주 후반까지는 그렇게 할 시간이 없습니다. 그때까지 다른 누군가가 이런 유형의 오류에 대한 통찰력을 얻거나 해결책을 찾았기를 바랐습니다.
Jeremy Caney '12

이 문서 는 .NET Core SDK 버전을 명시 적으로 선택하는 방법을 보여줍니다 . 당신은 그것을 시도 했습니까? 3.1 SDK가 목록에 나타 납니까?
Panagiotis Kanavos '12

@PanagiotisKanavos :이 프로젝트는 아직 Azure Pipelines를 사용하여 게시 되지 않았습니다. 즉이 말했다 않는 이 있다고 생각 나게 <TargetFramework> 에서 설정 pubxml하는 것이 프로파일 비주얼 스튜디오는 I가 간격에 의존한다. 죄송합니다! 대상 netcoreapp3.1과 일치하도록 변경 csproj하면 즉각적인 문제가 해결됩니다. (이것은 Azure App Service 자체가 대상에서 트립 되는 새로운 문제를 야기 하지만 제공 한 링크와 유사한 자체 포함 된 배포를 사용하여 해결할 수 있습니다.) 올바른 방향으로 안내해 주셔서 감사합니다!
Jeremy Caney

1
이 질문 (및 답변)을 찾아 주셔서 감사합니다. 나는 이와 같은 문제에 부딪히기 위해 최첨단 MS 변경 (권장 및 권장 사항)을 채택하는 것에 상당히 좌절하기 시작했습니다.
Frank

답변:


13

원래 질문에서 확인 된 바와 같이 즉각적인 문제는 두 곳 <TargetFramework>이 설정 되어있는 것과 관련이 있습니다 .

  1. 프로젝트 파일 (예 csproj)
  2. 게시 프로파일 (즉, pubxml)

<TargetFramework>업데이트해야 모두 위치, 그들은 일치해야 정확히 . 그렇지 않으면, 출판은 그것의 목표를 찾을 수 없습니다 project.assets.json에 기초 내장되어 파일, <TargetFramework>에서 csjproj파일.

참고 :pubxml 파일이파일의<TargetFramework>세트를 연기 할것으로 예상 할 수csproj있지만, 그렇지 않습니다 .

텍스트 에디터

텍스트 편집기를 통해 수정하려면

  1. 를 엽니 다 ~/Properties/PublishProfiles 폴더에 있습니다.
  2. 를 엽니 다 *.pubxml편집하고 싶은 것을 .
  3. 의 값 수정 <TargetFramework>에를 netcoreapp3.1:
<TargetFramework>netcoreapp3.1</TargetFramework>

Visual Studio 2019

Visual Studio 2019 IDE 를 통해이 수정을 수행하려면

  1. 웹 원 클릭 게시 에서 톱니 바퀴 아이콘을 클릭하십시오. 도구 모음 (게시 아이콘의 오른쪽에 있음).
  2. 대상 프레임 워크 가로 설정되어 있지 않다고 가정하면 netcoreapp3.1옆에있는 편집 아이콘을 클릭하십시오.
  3. 대상 프레임 워크 가로 설정되어 있는지 확인하십시오.netcoreapp3.1 .
  4. 저장을 클릭 하십시오 .

경고 : IDE를 사용할 때 여기에서 문제가 발생할 수 있습니다. 프로파일을 편집 할 때프로젝트 파일의 값 (예 :)이netcoreapp3.1이미 선택된 것을 볼 수 있습니다. 그러나 저장 을 클릭하면 원래 값으로돌아갑니다(예 :netcoreapp3.0제 경우). 인터페이스의 값을실제로 변경 하지 않았기 때문에Visual Studio에서 기본 값이 변경되지 않은 것으로 잘못 판단하기 때문입니다. 다른 값 (예 : Configuration )을 일시적으로 토글하면Visual Studio에서 변경이 발생했음을 인식하고파일에서 값이 모두 업데이트*.pubxml됩니다.

다시 올바른 방향으로 나를 지적 해 주신 @PanagiotisKanavos에게 감사합니다 (원래 스레드에 대한 주석 참조).


솔루션을 게시 해 주셔서 감사합니다! 지난 밤에 게시하려고 할 때이 문제로 어려움을 겪고 있었지만 아무런 의미가 없었습니다. 게시 마법사에서는 항상 대상으로 3.1이 선택되었으므로 pubx파일 이 정상이라고 생각했지만 설명에 따라 파일을 열면 여전히 3.0입니다. 매우 실망 스럽습니다. 솔직히, 나는 VS 16.3 및 .NET Core 3.0이 출시 된 이후로 이상하고 모호하며 멈추는 버그와 문제를 완전히 보여주었습니다. 다시 감사합니다!
Gup3rSuR4c

Idk도 얻을 수 있지만 프레임 워크에 따라 게시하도록 지시하면 전체 프레임 워크와 함께 게시하기로 결정하는 방법이 매우 좋습니다. , 15+ 분 ... 편지가 1 분 정도이어야한다 게시입니다
Gup3rSuR4c

참고 : 원래 이것을 게시 한 이후 Microsoft.NET Core 3.1에 대한 기본 지원을 제공하도록 Azure App Services 를 업데이트했습니다 . 이를 감안할 때 원래 메시지에서 메시지 에 대한 경고를 제거했습니다 . 이전에는 완전히 독립된 응용 프로그램 배포판을 게시해야했습니다. (즉, 새 버전의 .NET Core 삭제 간에는 보통 2-3 일의 지연 시간이 있으며 Azure App Service 환경 에 통합 되므로 향후 업데이트에서 알고 있으면 유용합니다.)HTTP Error 500.30 - ANCM In-Process Start Failure
Jeremy Caney

1
좋아, 프로젝트 속성에서 프레임 워크 버전 만 업데이트했으며 .pubxml 파일에 대해서도 생각하지 않았습니다. 이로 인해 .pubxml을 "netcoreapp3.1"로 업데이트 한 후 게시가 중단되었습니다. 감사합니다
demoncodemonkey

2

프로젝트 폴더를 엽니 다.

  • 폴더 속성 >> 게시 프로파일로 이동
  • FolderProfile.pubxml 파일을 연 다음 버전 3.0 3.1

    netcoreapp3.1

  • 마지막으로 게시하기 전에 응용 프로그램을 다시 작성하십시오.


pubxml파일을 수동으로 수정하기위한 명시적인 지침을 제공 해야하며 특히 Visual Studio 2019 GUI 를 통해 이러한 값을 수정하는 것이 좋습니다 . 이 세부 사항을 원래 답변에 통합 했으므로이 옵션이 명시 적으로 설명됩니다. 감사합니다!
Jeremy Caney 2014

0

변화

<PackageReferenceInclude="Microsoft.AspNetCore"Version="2.2.0" />
 to 
<PackageReference Include="Microsoft.AspNetCore.Http.Abstractions" Version="2.2.0" />

나를 위해 작동합니다.


1
들어 ASP.NET 코어 3.1 , 모든 Microsoft.AspNetCore라이브러리에 업데이트해야 3.1.0마이크로 소프트의 3.1 릴리스에 따라,. 귀하의 접근 방식은 오류가 귀하의 파일 과 파일 사이의 불일치로 인한 것이 아니라고 가정하고 ASP.NET Core 2.2의 유사한 문제에 대한 올바른 수정 일 수 있습니다 . csprojpubx
Jeremy Caney

위에서 언급 한 두 패키지의 버전은 현재 2.2.0이며 최신 버전으로 표시되어 있습니다.
Libertad

1
@Libertad, 당신은 최신 참조 순 코어 3.1 버전을 점하는 버전 16.4.0에 비주얼 스튜디오 설치를 업그레이드 할 필요가
navule

@navule 내 VS가 최신입니다. 위의 패키지는 단순한 패키지입니다. 이것 좀보세요 : nuget.org/packages/Microsoft.AspNetCore을 하고 최신 버전을 확인
리베르 타드
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.