1

나는 내 PC를 포맷하고 git repo에서 나의 (이전에 일하는) 프로젝트를 복제했다.NuGet : 'Microsoft.AspNet.WebApi.Client.5.2.3'패키지가 이미 설치 폴더에 존재하지 않습니다. 롤백

PM> update-package -reinstall

그것은 많은 패키지를 설치하려고했으나 Microsoft.AspNet.WebApi.Client.5.2.3에서 오류가 발생했습니다 :

나는 패키지를 다시 설치하려고했습니다

Package 'Microsoft.AspNet.WebApi.Client.5.2.3' already exists in folder 'C:\Users\can\Source\Repos\MyProject\MyProject\packages' 
Install failed. Rolling back... 
Package 'Microsoft.AspNet.WebApi.Client 5.2.3' does not exist in project 'Web' 

은 다음 추가 명령을 실행 한 후, 내가 할 :

update-package : Failed to add reference to 'System.Net.Http'. Please make sure that it is in the Global Assembly Cache. 
At line:1 char:1 
+ update-package -reinstall 
+ ~~~~~~~~~~~~~~~~~~~~~~~~~ 
    + CategoryInfo   : NotSpecified: (:) [Update-Package], Exception 
    + FullyQualifiedErrorId : NuGetCmdletUnhandledException,NuGet.PackageManagement.PowerShellCmdlets.UpdatePackageCommand 

나는 로컬 캐시는 사용하지만 아무런 소용이 없습니다. Visual Studio (NuGet 패키지 관리)의 GUI에서 모든 패키지를 업데이트했습니다. 어쨌든 내 솔루션을 빌드하려고하면 두 프로젝트에 대해이 솔루션을 얻게됩니다. 솔루션은 빌드되지 않습니다.

This project references NuGet package(s) that are missing on this computer. 
Use NuGet Package Restore to download them. 
For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. 
The missing file is ..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets. 

나는 무엇을하고 있습니까? Microsoft.Bcl.Build.1.0.21의 상대 경로가 정확하지 않기 때문에이다

+0

아래 답변을 수행 한 후에 재설치 오류가 계속 발생하면 오류 프로젝트의 project.json 파일을 공유 하시겠습니까? 아니면이 문제를 재현하기 위해 샘플을 보내주십시오. 감사. –

답변

2

If I try to build my solution anyway, I get this for two projects (and the solution fails to build)

, 는 .csproj 파일을 편집하고 상대 경로를 해결해야합니다.

<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> 
<PropertyGroup> 
    <ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText> 
</PropertyGroup> 
<Error Condition="!Exists('..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" /> 

을 다음 update-package -reinstall을했다 : 또는 는 .csproj 파일에서 다음 코드를 제거합니다.

게다가, 다시 설치 에러 :

당신은 모든 패키지가 복원되어 있는지 확인합니다. 그런 다음 update-package -reinstall -Project projectname 명령을 사용하여 솔루션의 각 프로젝트에 대한 패키지를 다시 설치하십시오.

+0

내 솔루션에서 새 웹 API 2 + mvc 5 프로젝트를 생성하고 폴더 이름을 변경했을 때 모든 패키지 링키지가 손상되었습니다. 이 답변은 나를 직접 솔루션으로 데려 왔고 예상대로 정확하게 작동했습니다. – condiosluzverde

+0

이 문제가 해결되지 않았습니다. 추가 조사가 끝나면'nuget.exe'를 다운로드 한 다음 패키지의 경로를 명시 적으로'.. \ packages' (물론 내 프로젝트 경로를 기준으로)로 제공하여 모든 패키지를 내 solutin에 설치했습니다. 문제는 디렉토리가 존재하지 않았지만 VS/NuGet이 존재하지 않는 디렉토리의 패키지를 찾고 있었는데 실패했다는 것입니다. 명시 적으로 모든 패키지를 해당 디렉토리로 다시 다운로드하면 문제가 해결됩니다. 그것은 아마 패키지 폴더를 무시한 나의 gitignore 였을 것이기에, 내 솔루션이 폴더를 가지고있는 구형 머신 상에 구축되게 만들었다. –

+0

@Can Poyrazoğl, 문제를 해결했음을 알았 기 때문에 기꺼이 해결할 수 있습니다. 해결 방법을 답안으로 공유하면 동일한 문제가있는 다른 커뮤니티에 도움이됩니다. 감사. –

관련 문제