Domanda

Visual Studio copie di default tutte le DLL a cartella bin di ogni progetto. Questo include anche le DLL di sistema (con l'eccezione di mscorlib.dll e System.dll), come System.Xml.Linq, System.ComponentModel.Composition (incluso dal SL4), ecc.

Dal momento che questi file sono inclusi in ogni XAP, dimensioni XAP crescere considerevolmente. Nel mio test limitato, l'impostazione "Copia locale" a falso non sembra rompere nulla. Perché Visual Studio aggiungere questi file al percorso bin? Dal momento che un utente avrebbe già Silverlight, posso supporre che queste assemblee sono già installati nella GAC ??di ogni utente o mi sto perdendo qualcosa?

È stato utile?

Soluzione

I file di cui parli non sono inclusi nella fase di esecuzione di installazione di Silverlight. Un Silverlight applicazione che utilizza queste librerie li deve fornire all'utente come parte del download.

È possibile ridurre alcuni degli effetti impostando la "Riduci dimensioni XAP utilizzando biblioteca caching" nella scheda Silverlight delle pagine proprietà del progetto.

Questa opzione fa sì che ognuno di questi file ad essere messi in file Zip separati, che verranno messi nella stessa cartella del XAP.

Questo aiuta a scenari in cui il vostro sito può avere più Xaps per varie applicazioni o in cui si rilascia nuove versioni di frequente. Per una singola applicazione che cambia raramente o viene colpito da molti visitatori unici il suo non è così utile.

Altri suggerimenti

Non Per impostazione predefinita, dll che sono specifici quadro che sono generalmente memorizzati in GAC non vengono copiati nella directory di output bin, e si può assumere che saranno sulla macchina client.

copia locale sul cui sopra sono inadempienti su false, quindi credo a un certo punto sono stati cambiati a true.

Tuttavia, senza sapere esattamente cosa dll sono indicati non posso dire esattamente

Penso che la chiave qui è "non sembra rompere nulla". Perché applicazioni Silverlight possono essere eseguiti su molte piattaforme e browser con le versioni diverse non si può fare l'ipotesi qualcosa funziona perché funziona sulla vostra macchina o anche uno o due altri.

Se le DLL sono compresi il suo perché sono potenzialmente necessari, quindi è necessario essere certi che ci sarà se si prevede di un'ampia distribuzione della vostra applicazione.

Per esempio, ho lavorato su un'applicazione basata Prisma con caricamento ritardato dei moduli. La maggior parte delle XAPs sono stati ridotti a circa 20k perché i moduli secondari sono garantiti per essere in grado di utilizzare le DLL di cui hanno bisogno in quanto sono in Shell XAP.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top