Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

560
Views
¿Cómo eliminar la referencia al ensamblaje no utilizado dentro de Dependencies/Frameworks/Microsoft.NETCore.App?

Hay ensamblajes dentro de .NET 6 framework que estoy 100% seguro de que nunca usaré, sin embargo, todavía aparecen en la lista de dependencias, ReSharper (y probablemente VS también) todavía los sugiere al importar tipos, y en en general su existencia es molesta.

Por ejemplo, estoy 100% seguro de que nunca usaré Microsoft.Win32.Registry o System.Drawing , pero cuando escribo Color veo que IDE sugiere tipos que realmente no puedo usar. Estoy abandonando mis formas exclusivas de Windows y no quiero volver a verlas nunca más.

Intenté presionar Eliminar después de seleccionar el nodo, no sucedió nada. Intenté agregar <Reference Remove="System.Drawing" /> a mi archivo .csproj, pero no pasó nada. Intenté usar "Eliminar referencias no utilizadas", no sucedió nada.

Pregunta: ¿Hay alguna forma de deshacerse de estas referencias? Eliminarlos de la lista sería perfecto, pero ocultarlos de las sugerencias de VS/R# también estaría bien.

He encontrado varias preguntas sobre la eliminación de referencias en SO, pero todas parecen ser sobre .NET 4.x, sobre cómo agregar una alternativa, todo esto no es útil para mi caso.

VS2022 17.0.1, R# 2021.3 EAP, .NET 6.0, todo lo más reciente.

over 4 years ago · Santiago Trujillo
2 answers
Answer question

0

Estos ensamblajes se denominan MetaPackages y no puede eliminarlos. Esta es una pregunta similar que puede ayudarlo: Cómo eliminar la referencia adicional del paquete Microsoft.AspNetCore.All Meta

over 4 years ago · Santiago Trujillo Report

0

No puede eliminarlo allí, pero después de que su proyecto esté construido, puede "sacudir" todas las partes no utilizadas con algunas herramientas. La mayoría de los ofuscadores tienen una función para ese propósito y creo que ILMerge también tiene un interruptor para recortar los tipos no utilizados (Editar: no, no lo hace ).

Tenga en cuenta que si usa la asignación de reflexión, corre el riesgo de obtener TypeLoadException cuando se eliminan los tipos que no tienen una referencia estática pero que siempre se cargan dinámicamente a través de la reflexión. El uso del atributo [ObfuscationAttribute(Exclude=true)] de estas clases puede ayudar, pero en realidad el atributo no tiene una propiedad específica para evitar que se elimine la clase (solo el atributo en sí). Los ofuscadores específicos tendrán sus propias opciones o características para evitar la poda.

En .Net 6 puede usar Visual Studio para publicar su proyecto en una carpeta, elija autónomo y en las opciones de publicación de archivos encontrará "producir archivo único". Esto intentará eliminar cualquier ensamblaje (marco) no utilizado. No eliminará las clases no utilizadas en los ensamblados utilizados.

Si desea evitar que aparezcan opciones no deseadas en Intellisense, supongo que no tiene suerte. Podría usar una versión anterior de Visual Studio que solo mostraría los elementos disponibles en el ámbito definido (al que se hace referencia en el proyecto y en la lista de using de su espacio de namespace o class ). Personalmente, encuentro útiles las sugerencias más recientes de intellisense, me ahorra buscar el espacio de nombres y el nombre del ensamblado cuando solo recuerdo el nombre de la clase.

over 4 years ago · Santiago Trujillo Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!