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>
This fixed the build warning and unblocked all the versions of Microsoft.AspNetCore.App
in Package Manager. I was even able to remove the explicit reference to Microsoft.Extensions.Logging.Abstractions
without reintroducing the original error. The final .csproj looked like this with no issues.
<ItemGroup>
...
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.1.1" />
...
</ItemGroup>
I had same problem and I think, the problem is about the package.
<PackageReference Include="Microsoft.AspNetCore.App" />
The problem was resolved after I specified version exactly.
<PackageReference Include="Microsoft.AspNetCore.App" Version="2.2.0" />
As I know, that error is occured when the version number
Another possible solution. In the csproj
file, update the target framework to the version you wish to upgrade to. After making the change, as per below snippets, the packages can be upgraded via the solution NuGet package manager.
Before:
<PropertyGroup>
<TargetFramework>netcoreapp2.0</TargetFramework>
</PropertyGroup>
After:
<PropertyGroup>
<TargetFramework>netcoreapp2.1</TargetFramework>
</PropertyGroup>
간단히 해결했습니다. 프로젝트 (또는 ALT + Enter)-> 속성-> 애플리케이션-> 대상 프레임 워크를 마우스 오른쪽 버튼으로 클릭 (.NET Core 프레임 워크 (이 경우 1.1) 선택)
가장 좋은 방법은 SDK와 런타임을 업그레이드 한 후 프로젝트를 다시 만든 다음 새 프로젝트에 이전 코드와 구성을 삭제하는 것입니다. 그 외에는 쓸모없는 조정과 알려지지 않은 구성에 너무 많은 시간을 소비하게 될 것입니다.
'IT TIP' 카테고리의 다른 글
컴포넌트의 Reactjs 비동기 렌더링 (0) | 2020.10.16 |
---|---|
Android 스튜디오 gradle.properties 파일은 어디에 있습니까? (0) | 2020.10.16 |
파일 다운로드를 추적하는 방법 (0) | 2020.10.16 |
더 빠르고 더 나은 웹 개발을위한 도구 (0) | 2020.10.16 |
C # 용 JSON 라이브러리 (0) | 2020.10.16 |