Mam funkcji, która zwraca PrivateFontCollection:NET PrivateFontCollection - Jak zwolnić blokady plików po zakończeniu
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
I wtedy korzystać z funkcji w następujący sposób:
Using customFonts = Common.GetCustomFonts()
' Do some stuff here
End Using
Spodziewam się, że pliki zostaną zwolnione, ale nadal są zablokowane: Pojawia się następujący błąd: "Nie można ukończyć działania, ponieważ plik jest otwarty w systemie. Zamknij plik i spróbuj ponownie. "
Zamykanie strony w IIS nie pomaga; musimy odtworzyć pulę aplikacji, aby została zwolniona.
Czy ktoś może doradzić, jak korzystać z PrivateFontCollection w taki sposób, aby pliki były publikowane w różnych zastosowaniach?
Jedynym moim dotychczasowym pomysłem jest załadowanie czcionki do pamięci i użycie w zamian opcji AddMemoryFont. W ten sposób mogę zagwarantować, że PrivateFontCollection nigdy nie dotknie plików. – extremeandy
Aby uzyskać możliwą odpowiedź, spójrz na http://stackoverflow.com/questions/26671026/how-to-delete-the-file-of-a-privatefontcollection-addfontfile – Horcrux7
Dodano błąd połączenia https://connect.microsoft.com/ VisualStudio/feedback/details/1379843 – Peter