Часто в приложении бывает необходимо использовать объёмные ресурсы, например, динамические библиотеки. Их можно включить в ресурсы приложения в сжатом виде. .NET имеет встроенный архиватор GZip. Его можно использовать, например, так:
'''
''' Проверяет наличие необходимых DLL в текущей директории и при отсутствии создаёт.
'''
Private Sub CheckDlls()
Dim dlls As New Dictionary(Of String, Byte()) From {
{"myLib1.dll", My.Resources.myLib1},
{"myLib2.dll", My.Resources.myLib2}
}
For Each dll In dlls
If (Not IO.File.Exists(dll.Key)) Then
Using compressed As New IO.MemoryStream(dll.Value),
gzStm As New IO.Compression.GZipStream(compressed, IO.Compression.CompressionMode.Decompress),
decompressed As IO.FileStream = IO.File.Create(dll.Key)
gzStm.CopyTo(decompressed)
End Using
End If
Next
End Sub