[.net-core] Visual Studio 2017에서 Microsoft.NETCore.App 패키지를 업데이트 할 수 없습니다 ( “프로젝트에서 차단됨”).

Microsoft.NETCore.App 1.1.2를 대상으로하는 dotnet 코어 앱이 있습니다. 해당 프로젝트에 대해 테스트하기 위해 테스트 프로젝트를 만들었지 만 빌드 할 때 다음 경고가 표시되었습니다.
여기에 이미지 설명 입력

NuGet 패키지 관리자를 열고 경고가 올바른지 확인하고 테스트중인 프로젝트에 다른 버전의 Microsoft.NETCore.App이 있습니다.
여기에 이미지 설명 입력
여기에 이미지 설명 입력

내 문제는 Visual Studio가 해당 버전을 업데이트하도록 허용하지 않는다는 것이므로이 문제를 해결하는 방법이 혼란 스럽습니다.
여기에 이미지 설명 입력
이상적으로는 드롭 다운을 클릭하고 올바른 버전을 선택하는 것이 좋지만 Visual Studio는 ” 프로젝트 또는 packages.config의 추가 제약 조건 “. 패키지를 어떻게 업데이트해야합니까? Visual Studio는 어떤 “추가 제약”을 의미합니까?



답변

2018 편집 : 당신이하고있는 일을 정말로 알고있는 경우에만 패키지 업데이트 지침을 따르십시오. 대부분의 경우이 패키지 또는 “프로젝트에 의해 차단됨”으로 표시된 다른 패키지를 수동으로 업데이트 할 필요가 없습니다. 프레임 워크 종속 앱은 사용 가능한 최신 런타임을 사용하고 자체 포함 된 애플리케이션은이 패키지의 최신 버전을 사용하여 추가 빌드를 자동으로 수행합니다. (테스트 프로젝트에서이 패키지를 업그레이드해야하는 몇 가지 예외적 인 경우가 있습니다.이 경우 다른 옵션에 대해서는이 Q & A 를 추가 <TargetLatestRuntimePatch>true</…>하고 참조하십시오 )

암시 적 패키지 참조는 Microsoft.NET.Sdk추론을 NuGet을 통해 업데이트 할 수 없습니다.

project.json에서 마이그레이션 한 경우 1.1.0참조가 있는 프로젝트 에

<RuntimeFrameworkVersion>1.1.0</RuntimeFrameworkVersion>

csproj 파일 또는 다음과 같은 항목 (이전에 패키지 관리자를 사용하여 버전을 설정 한 경우) :

<PackageReference Update="Microsoft.NETCore.App" Version="1.1.0" />

위와 같은 항목을 삭제하면 모든 패키지가 자동으로 참조됩니다 1.1.2(또는 설치된 SDK가 최신 것으로 간주하는 모든 항목 ). 또는 RuntimeFrameworkVersion모든 프로젝트에서 설정 합니다.


답변

.NET Core 2 웹 앱에 Entityframework.Core 패키지를 설치하려고 시도하는 것과 비슷한 문제가 발생했습니다. 이 문제를 해결하기 위해 패키지 관리자 콘솔을 통해 강제 설치했습니다.

Install-Package Microsoft.NETCore.App -Version 2.0.5

(2.0.5는 당시 가장 최신 버전이었습니다)

유용하기를 바랍니다. 평화.


답변

나를 위해 추가

<TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>

트릭을했다

<PropertyGroup>
  <TargetFramework>netcoreapp2.1</TargetFramework>
  <GenerateAssemblyInfo>false</GenerateAssemblyInfo>
  <TargetLatestRuntimePatch>true</TargetLatestRuntimePatch>
</PropertyGroup>


답변

짧은 답변

Microsoft.AspNetCore.App.csproj 파일 의 패키지 참조에 명시 적 버전을 추가 합니다.

긴 답변

새로운 netcoreapp2.1 프로젝트가있었습니다. 다음은 .csproj 파일에 있습니다. Microsoft.AspNetCore.App패키지 참조 와 관련된 버전이 없습니다 .

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  ...
</ItemGroup>

Microsoft.Extensions.Logging.Abstractions종속성 불일치 (빌드 오류)를 해결하기 위해 패키지 에 대한 명시 적 참조를 추가했습니다 . Micorsoft.AspNetCore.App이 종속성의 버전 2.1.0을 원했지만 다른 패키지는 버전 2.1.1을 원했습니다. 내 .csproj 파일은 이제 다음과 같이 보입니다.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

이것은 패키지 Micorsoft.AspNetCore.App의 2.1.0 버전이 필요하다는 경고로 빌드 오류를 줄 Microsoft.Extensions.Logging.Abstractions였지만 버전 2.1.1은 물론 해결되었습니다.

Micorsoft.AspNetCore.App경고를 수정하기 위해 버전 2.1.1 로 업데이트하려는 시도 는 OP에서 언급 한대로 패키지 관리자에 의해 차단되었습니다.

Micorsoft.AspNetCore.App이와 같이 버전 2.1.1을 명시 적으로 사용하도록 패키지 참조를 업데이트 했습니다.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  <PackageReference Include="Microsoft.Extensions.Logging.Abstractions" Version="2.1.1" />
  ...
</ItemGroup>

이것은 빌드 경고를 수정하고 Microsoft.AspNetCore.App패키지 관리자 의 모든 버전을 차단 해제했습니다 . Microsoft.Extensions.Logging.Abstractions원래 오류를 다시 소개하지 않고 명시 적 참조를 제거 할 수도있었습니다 . 최종 .csproj는 문제없이 이와 같이 보였습니다.

<ItemGroup>
  ...
  <PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
  ...
</ItemGroup>


답변

나는 같은 문제가 있었고 문제는 패키지에 관한 것이라고 생각합니다.

<PackageReference Include="Microsoft.AspNetCore.App" />

버전을 정확히 지정한 후에 문제가 해결되었습니다.

<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />

아시다시피 그 오류는 버전 번호가


답변

또 다른 가능한 해결책. 에서csproj 파일, 당신이 업그레이드하고자하는 버전으로 대상 프레임 워크를 업데이트합니다. 변경 후 아래 스 니펫에 따라 솔루션 NuGet 패키지 관리자를 통해 패키지를 업그레이드 할 수 있습니다.

전에:

<PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>

후:

<PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>


답변

간단히 해결했습니다. 프로젝트 (또는 ALT + Enter)-> 속성-> 애플리케이션-> 대상 프레임 워크를 마우스 오른쪽 버튼으로 클릭 (.NET Core 프레임 워크 선택 (이 경우 1.1))