2

VSTS에 패키지가 있으므로 VSTS에서 빌드되는 솔루션에서 참조하는 여러 패키지를 제공합니다. 빌드가 갑자기 패키지 복구 단계에서 실패하여 로그로 복구 할 dll을 찾을 수 없다는 메시지가 나타납니다.VSTS Nuget Installer가 패키지 피드를 사용하여 인증하지 못합니다.

복원 NuGet 패키지 Basd.Diagnostics.0.7.0.

경고 : 'Basd.Diagnostics'패키지의 '0.7.0'버전을 찾을 수 없습니다.

공공/민간 피드는 내 nuget.config에 나열되어 있으며 또한 그래서 복원 작업이 패키지에 대한 실제 피드를 찾을 수 없다는 문제 아니다 빌드 로그 "Using Feeds..."에 표시됩니다. 인증 할 수 없기 때문에 피드에서 패키지를 검색 할 수없는 것과 같습니다.

나는 거기 지난 지금에 일할 때부터의 변화가 그이있는 빌드 정의에 대한 역사를 보면 지금 정의의 "preCredProviderNuGet": "false" 필드가

"build": [ 
    { 
     "enabled": true, 
     "continueOnError": false, 
     "alwaysRun": false, 
     "displayName": "NuGet restore MySol.sln", 
     "timeoutInMinutes": 0, 
     "task": { 
     "id": "333b11bd-d341-40d9-afcf-b32d5ce6f23b", 
     "versionSpec": "*", 
     "definitionType": "task" 
     }, 
     "inputs": { 
     "solution": "Basd.Core.sln", 
     "nugetConfigPath": "nuget.config", 
     "restoreMode": "restore", 
     "noCache": "false", 
     "nuGetRestoreArgs": "", 
     "verbosity": "", 
     "nuGetPath": "", 
     "preCredProviderNuGet": "false" 
     } 
    }, 

. 나는 봤지만 봤지만 어떻게 그리고 이것이 어디에 설정되어 있는지 알 수 없지만 이것이 내 피드에 대한 인증을 방해하여 복원 작업이 실패하는 것입니다.

이 설정은 어디에 있으며 어떻게 다시 켜거나 항목으로 제거 할 수 있습니까? working build def에서는 사실로 설정되지 않았고, 존재하지 않았습니다.

VSTS UI 관련 필드입니까, 아니면 nuget.config 파일에서 설정 한 것입니까? 다시 diff를 수행하면 작동하는 빌드와 작동하지 않는 빌드 사이에서 내 nuget.config에서 변경된 사항이 없습니다.

+0

https://www.bountysource.com/issues/36464119-nuget-installer-restore-fails-to-pull-down-unlisted-packages-from-vsts-package-management – rism

답변

1

이것은 현재 해결해야하는 VSTS 문제로 인한 것 같습니다. 빌드 에이전트를 사용해보십시오.

문제 : Packaging issues with Visual Studio Team Services – 7/30 – Resolved

+0

불행히도 이것은 내 문제를 해결하지 못한다. 그러나 내 마지막에는 아무것도 변하지 않았고 타이밍도 너무 우연한 이드의 마이크로 소프트 문제를 암시한다. 이것은 클라우드의 문제점입니다. 통제가 부족하고 부서지면 모든 사람들이 부서집니다. 버그가 감염됩니다. 링크를 가져 주셔서 감사합니다 - 무결성 검사의 무언가. – rism

+0

@rism MS는이 문제에 대한 새로운 문제를 조사하고 있습니다. https://blogs.msdn.microsoft.com/vsoservice/?p=12025 –

+0

두 번째 패치/수정이 적용되었습니다. 링크를 가져 주셔서 감사합니다. – rism

0

"preCredProviderNuGet"설정은 문제와 관련이 없습니다. NuGet 복구 작업에는 "Path to NuGet.exe"및 해당 확인란 "Path to NuGet.exe는 버전 3.2 이하입니다"라는 고급 설정이 추가로 있습니다. 이 설정은 빌드 json의 nuGetPath 및 preCredProviderNuGet 설정에 해당합니다. 사용시 preCredProviderNuGet은 nuGetPath도 설정되어있는 경우에만 영향을 미치며, v3 이전에는 플러그인 신임 공급자가 지원되지 않으므로 사용중인 NuGet 버전이 신임 제공자를 사용할 수 없다는 신호입니다. 2

한 가지 제안은이 작업의 자세한 표시를 "상세"로 설정하고 빌드를 다시 실행하는 것입니다. NuGet Restore task \ Advanced \ Verbosity에서 찾을 수 있습니다.

+0

회신 해줘서 고맙지 만이 설정이 중요하다고 생각하는 세부적인 로그입니다. 이 설정이 존재하지 않을 때 작동했던 빌드에서 'xyzFeed에 대한 자격 증명 설정'을 로깅합니다. 'preCredProviderNuGet'가있는 곳에서 실패한 빌드에는 그것에 대한 항목이 없습니다. 자격 증명을 설정하지 않으면 패키지를 연결/찾을 수 없다는 의미가됩니다. 따라서이 설정은 자격 증명을 설정하는 단계를 해제합니다. 두 빌드가 모두 너겟 경로 또는 아래 3.2 버전을 확인하지 않았으므로이 설정이 모두 동일하게 작동한다고 생각합니다. – rism