¿Cuál es la carpeta ref al compilar la aplicación .NET 5.0?
Me refiero a este:
[project_path]\bin\Debug\net5.0\ref\Estos son los llamados ensamblajes de referencia (ensamblajes que solo contienen la interfaz pública de un ensamblaje), estos ayudan a acelerar el proceso de compilación, ya que los proyectos que dependen de este podrán ver que no hay razón para volver a compilar, incluso si el las entrañas de la asamblea han cambiado, porque por fuera sigue siendo la misma.
Estos ensamblajes de referencia deben tener el mismo aspecto que los reales desde el exterior. Por lo tanto, tienen el mismo nombre de archivo, nombre de ensamblado, identidad de ensamblado y todo. Esto permite que el sistema de compilación los use como sustitutos de los reales. Y dado que estos ensamblajes no tienen ninguno de los detalles de implementación, solo cambian cuando cambia la interfaz de los contenidos. Debido a estos hechos, no pueden vivir en la misma carpeta que la salida de compilación real, y este es el motivo de la carpeta de ref adicional. MsBuild usará estos ensamblados de referencia automáticamente para acelerar el proceso de compilación (a expensas de generar y comparar el ensamblado de referencia cada vez que el código compilado da como resultado una nueva salida del proyecto y algunos archivos en el directorio de salida).
Si otros proyectos no hacen referencia a su proyecto, no obtiene ningún beneficio de estos ensamblajes de referencia (si no los entrega a terceros). Y puede desactivar esta función agregando esta propiedad al archivo del proyecto:
<PropertyGroup> <!-- Turns off reference assembly generation See: https://docs.microsoft.com/en-us/dotnet/standard/assembly/reference-assemblies --> <ProduceReferenceAssembly>false</ProduceReferenceAssembly> </PropertyGroup>Después de cambiar la configuración, asegúrese de limpiar sus salidas de compilación.
Estos ensamblajes de referencia también se pueden usar para permitir que las personas compilen proyectos para trabajar con su sistema, sin tener que instalar/redistribuir los ensamblajes compilados reales que se ejecutan en su servidor. De esta manera, las personas pueden desarrollar extensiones, complementos o clientes para su aplicación sin tener que darles acceso a la implementación real. Esto puede ayudar a proteger su propiedad intelectual, ya que los ensamblados .NET son fáciles de descompilar.
Ver también: