other net dotnet another .net dll reference

dotnet - .net reference specificversion ¿cierto o falso?



net core add reference (1)

Esta respuesta se basará en la suposición de que estás versionando tus dlls.

Si establece SpecificVersion en true (que es el valor predeterminado al agregar una referencia), el proyecto hará referencia a ese dll con una versión particular (digamos por ejemplo 1.0.0.0). Si, en un momento posterior, se te da un dll nuevo (digamos 1.0.1.0), entonces tendrás que eliminar la antigua referencia dll y agregar la nueva referencia. Esto se debe a que el proyecto busca específicamente 1.0.0.0 cuando tiene una nueva versión 1.0.1.0.

La alternativa a esto es establecer el SpecificVersion en falso, que le dice al proyecto que busque el último dll disponible y lo use. El problema con esto es que ahora se requiere que el proyecto "cace" en varios lugares para el archivo DLL al que ha hecho referencia, lo que puede aumentar su tiempo de compilación. Hará esto aunque sepa la ruta del dll al que ha hecho referencia. No estoy seguro de si esto es un error o si esto se hace por diseño. Es posible que esté comprobando si hay dlls más nuevos además del que ha mencionado (quizás en el GAC o en otro lugar).

Aquí hay un article que describe este problema con más detalle.

Somos dos compañías que estamos trabajando en el mismo proyecto, en la misma aplicación. Cada semana intercambiamos solo nuestras asambleas (no el código) y nos referimos al dll de la otra.

¿Cuál es la mejor práctica con respecto a la versión specificversion al agregar referencia a nuestro proyecto? Específicamente, ¿cuándo deberíamos usar un valor de true specificversion de true y en qué caso deberíamos usar false ?