← Барлық мақалаларға оралу

Projects ішіндегі package dependencies қалай тазалауға болады?

Жарияланды

Legacy projects package dependencies бойынша жиі messy болады: unused libraries, wrong projects-ке attached packages немесе direct dependencies орнына transitive dependencies-ке сүйенетін code.

Visual Studio unused packages жоюдың straightforward way береді:

  1. Project үстінде right-click жасаңыз.

  2. Remove Unused References… таңдаңыз.

  3. Suggested changes қолданыңыз.

image

Бірақ бұл action build errors тудыруы мүмкін. Неге бұлай болады?

Бірінші себеп: package wrong project ішінде referenced

Package бір project ішінде referenced, бірақ басқа dependent project ішінде used болуы мүмкін. Мысалы:

  • Сізде API және Core projects бар, API Core-ға depends етеді.

  • prometheus-net.AspNetCore package қателесіп Core-ға added, бірақ actually тек API ішінде used.

  • Remove Unused References кейін prometheus-net.AspNetCore Core-дан removed болады да, API ішінде build errors пайда болады.

image

Solution simple: necessary package-ты directly API project ішіне install етіңіз. Visual Studio ішінде cursor-ды unresolved reference үстіне қойып, Alt+Enter -> Install package қолдануға болады.

Package қолданатын project сол package-қа directly reference жасауы керек.

Екінші себеп: code transitive dependency-ге сүйенеді

Project өзі directly reference жасамаған package types қолдануы мүмкін. Ол package басқа NuGet package dependency ретінде келеді.

image

Мысалы:

  • Project directly Package A references етеді.

  • Package A Package B-ге depends етеді.

  • Сіздің code Package B types қолданады, бірақ project file тек Package A көрсетеді.

  • Егер Package A unused деп detected болып removed болса, Package B бірге жоғалады және build fails.

Fix - Package B-ні оны қолданатын project-тің direct dependency ретінде қосу. Бұл real dependency explicit етеді және unrelated package cleanup немесе upgrades build сындыруының алдын алады.

Қорытынды

Dependency management-ке structured approach unnecessary clutter алып тастаудан да көбірек береді. Ол ownership анық етеді, projects арасындағы accidental coupling азайтады және codebase maintain етуді жеңілдетеді.

References жойғаннан кейін әрқашан entire solution rebuild жасаңыз және compiler hidden dependency көрсеткен жерлерде direct package references қосыңыз.