1

나는 NUGET이 항상 최신 패키지를 다운로드하고 -version 스위치를 사용하는 방법을 배웠다. 그러나 다른 개발자가 다른 SUO 파일 (Visual Studio)을 사용하는 최근 프로젝트에서는 빌드 오류를 해결하기 위해 다른 NUGET 콘텐츠를 추가해야합니다. (네, 그렇게해서는 안됩니다).MVC (ASP.NET) 프로젝트에 NUGET을 올바르게 사용하려면 어떻게해야합니까?

그러나 엉망을 제거하려고 시도 할 때 NUGET이 모든 사항을 정리하지 않는 것처럼 보입니다. 나는이 문제를 디버깅하고 Web.Config가 지난 주에 여전히 나쁜 참조를 가지고 있음을 확인함으로써이를 검증했다. 문제는 물론 이러한 패키지의 전체 종속성 체인을 알 수 없다는 것입니다. 이렇게하면 순환 종속성 체인이 만들어 지므로 패키지를 제거 할 때 Dll이 남게됩니다.

지난 주에 우리는 너무 꼼짝 못했습니다. MVC 4를 다시 설치하기로 결정했습니다 ... 마지막으로 알려진 작업 버전을 비교하는 것 외에 다른 간단한 작업을 수행하는 방법을 알아낼 수 없었습니다. 버전 별 DLL을 개별적으로 다운로드하십시오. 그리고 MSFT가 자신의 MVC 템플릿에 포함하는 더 모호한 패키지를 찾는 데는 행운이 있습니다.

이 어리석은 증거를 만들기 위해 무엇을하고 있는지 궁금합니다. 내 참조 라이브러리를 제어 할 때 "전문가"가 될 수 있다고 조언 할 수 있습니까?

+0

(순수한 호언 장담) 내가 너겟을 좋아하지 않는 이유 중 몇 가지를 명명했습니다.하지만 오토, 실제로 이 패키지에는 다른 패키지 관리 시스템이 없습니다. (내 말은 : 아직 다른 패키지를 찾지 못했습니다.) – quetzalcoatl

+0

Yah, 나는 팬이 아니기 때문에 의존성 체인을 사용하지 않습니다. NUGET은 DLL을 업데이트하고, 오래된 코드를 의존성으로 표시 할 것입니다. 또한, 두려운 부분을 추가합니다. Machine Redirects .... 은둔적인 버그를 찾아내는 데는 장기적인 해결책이 아닙니다. –

답변

2

솔루션에 'Nuget Package Restore 사용'을 설정하는 것이 좋습니다. 또한 패키지 폴더의 아무 것도 소스 제어에 들어 가지 않도록하십시오. 패키지를 복원하면 각 시스템의 패키지가 리스토어됩니다. 소스 제어에 패키지가 있으면 버전 관리, 누락 된 참조 등이 있습니다.

관련 문제