Pregunta

Visual Studio de copias por defecto todos los archivos DLL a la carpeta bin de cada proyecto. Esto también incluye DLL del sistema (con la excepción de mscorlib.dll y System.dll), tales como System.Xml.Linq, System.ComponentModel.Composition (incluido desde SL4) etc.

Dado que estos archivos se incluyen en cada XAP, tamaños XAP crecer considerablemente. No parece en mi prueba limitada, el establecimiento de "copia local" false para romper nada. ¿Por qué Visual Studio añadir estos archivos a la ruta bin? Puesto que un usuario ya tendría Silverlight, yo puedo asumir que estos conjuntos ya están instalados en la GAC ??de cada usuario o me estoy perdiendo algo?

¿Fue útil?

Solución

Los archivos que mencionas no están incluidos en el tiempo de ejecución de la instalación de Silverlight. Una aplicación que utiliza Silverlight estas bibliotecas deben suministrarlos al usuario como parte de la descarga.

Se puede minimizar algunos de los efectos mediante el establecimiento de la "Reducir el tamaño XAP mediante el uso de la biblioteca de almacenamiento en caché" opción en la pestaña Silverlight de las páginas de propiedades del proyecto.

Esta opción hace que cada uno de estos archivos para ser colocado en archivos Zip separadas que serán colocados en la misma carpeta que el XAP.

Esto ayuda a los escenarios en los que puede ascender a varios Xaps para diversas aplicaciones o donde suelte nuevas versiones con frecuencia. Para una sola aplicación que cambia raramente o es golpeado por muchos visitantes únicos que no es tan útil.

Otros consejos

No Por defecto, los DLL que son específicas marco que se almacenan generalmente en GAC no se copian en el directorio bandeja de salida y se puede asumir que estarán en la máquina del cliente.

copia local en el anteriormente mencionado se cambia automáticamente a falso, así que creo que en algún momento fueron cambiados a la verdadera.

Sin embargo, sin saber exactamente qué DLL se hace referencia a que no puedo decir exactamente

Creo que la clave aquí es "no parece romper nada". Dado que las aplicaciones de Silverlight se pueden ejecutar en muchas plataformas y navegadores con versiones diferentes que no se puede hacer la suposición de algo va a trabajar, ya que funciona en su máquina o incluso una o dos personas.

Si los archivos DLL se incluyen debido a que su potencial se necesitan por lo que necesita para estar seguro de que estará allí si usted está planeando sobre una amplia distribución de su aplicación.

Por ejemplo, he estado trabajando en una aplicación basada en Prisma con retraso en la carga de módulos. La mayoría de los XAPs se han reducido a alrededor de 20k porque los módulos secundarios están garantizados para ser capaz de utilizar las DLL que necesiten, ya que están en el Shell XAP.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top