Ho una funzione che restituisce un PrivateFontCollection:.NET PrivateFontCollection - come liberare i blocchi di file quando finito
Public Shared Function GetCustomFonts() As PrivateFontCollection
Dim result = New PrivateFontCollection
Dim customFontFiles = {"Garamond.TTF", "Garamond-Bold.TTF", "Garamond-Italic.TTF", "EurostileExtended-Roman-DTC.TTF"}
For Each fontFile In customFontFiles
result.AddFontFile(Hosting.HostingEnvironment.MapPath("/Includes/" & fontFile))
Next
Return result
End Function
Ho quindi utilizzare la funzione come segue:
Using customFonts = Common.GetCustomFonts()
' Do some stuff here
End Using
Mi aspetterei che il i file verrebbero rilasciati, ma sono ancora bloccati: ottengo il seguente errore: 'L'azione non può essere completata perché il file è aperto in Sistema. Chiudi il file e riprova. '
La chiusura del sito Web in IIS non aiuta; dobbiamo riciclare il pool di app da rilasciare.
Qualcuno può consigliare su come utilizzare PrivateFontCollection in modo tale che i file vengano rilasciati tra gli usi?
La mia unica idea è quella di caricare il carattere in memoria e utilizzare invece AddMemoryFont. In questo modo posso garantire che PrivateFontCollection non tocchi mai i file. – extremeandy
Per una possibile risposta, consultare http://stackoverflow.com/questions/26671026/how-to-delete-the-file-of-a-privatefontcollection-addfontfile – Horcrux7
Aggiunto bug di connessione https://connect.microsoft.com/ VisualStudio/retroazione/dettagli/1379843 – Peter