2017-11-06 7 views
1

솔루션에 .Net Standard 프로젝트가 있고 msbuild를 빌드 서버에 구축하려고합니다. "nuget restore"를 먼저 실행하지 않으면 "project.assets.json '을 찾을 수 없습니다. NuGet 패키지 복원 실행"오류가 발생합니다. 이미 솔루션 레벨의 "packages"폴더에 필요한 모든 NuGet 패키지가 있습니다. msbuild가 파일을 다시 다운로드하지 않고 로컬 "packages"폴더의 파일을 사용해야한다는 것을 어떻게 표시하고 싶습니다. 어떻게해야합니까? 고맙습니다.project.assets.json 또는 nuget 복원을 사용하지 않고 msbuild를 어떻게 사용할 수 있습니까?

답변

0

.NET 표준 프로젝트에서는 솔루션에 packages 폴더를 사용하지 않습니다. 이것은 packages.config을 통해 NuGet 패키지를 참조하는 "오래된"방법입니다. 새로운 방법 - 프로젝트에있는 PackageReference 항목 - 사용자의 홈 디렉토리에있는 공유 전역 패키지 폴더를 사용합니다. project.assets.json은 패키지를 다운로드 할 필요가없는 경우에도이 공유 캐시에 대한 확인 된 경로로 빌드 시스템에서 다시 생성해야합니다. NuGet 복원은 모든 패키지가 이미 시스템에있는 경우에도 네트워크에 연결하지 않아도됩니다.

+0

그런 다음 솔루션 수준에서 해당 패키지 폴더를 새로 고치는 데 "패키지"폴더를 사용하도록 Nuget Restore에 지시하는 방법이 있습니까? 내 NuGet 저장소는 VSTS에서 개인적으로 공유되며 VSTS가 아닌 로컬 TFS 서버에있는 빌드 정의로 자격 증명을 저장하는 좋은 방법을 모르겠습니다. – Eric

+0

@Eric - NuGet 패키지를 복원 할 때 복원 할 수있는 폴더를 지정하는 데 사용할 수있는 RestoreFallbackFolders 속성을 사용하는 방법을 살펴 보겠습니다. https://github.com/NuGet/Home/wiki/%5BSpec% 5D-NuGet-MSBuild 설정 - 또는 솔루션에 포함 된 NuGet.Config 파일을 사용하여 필요한 패키지 소스와 자격 증명을 확인하십시오. –

+0

도 https://stackoverflow.com/questions/43687058/how-do-i-include-nuget-packages-in-my-solution-for-net-core-projects/43687514#43687514에서 확인하십시오. git repo에 .nupkg 파일이나 "전역 캐시"를 포함시키는 몇 가지 방법. 그러나 에이전트를 빌드 할 때 전역 NuGet 설정은 자격 증명을 사용하여 피드를 지정할 수도 있습니다. VSTS의 경우 상담원이 피드에 액세스 할 수있게하는 방법이 있어야합니다 (정확히 어떻게 알지는 못합니다). –

0

내가 가진 최고의 솔루션은 NuGet 복원과 관련이 있지만 Nuget.config의 NuGet 저장소 중 하나 인 로컬 패키지 폴더를 추가 했으므로 원격 저장소에 연결할 필요가 없습니다. 이것은 내가 원했던 것은 아니지만, 진보를 가능하게합니다.

<packageSources> 
    <add key="local" value=".\packages" /> 
    </packageSources>