Il Framework .NET offre la possibilità di memorizzare, all'interno di un assembly, un qualunque tipo di file (cablandolo all'interno dell'EXE o dell DLL).
Per fare ciò è necessario:
1) importare il file all'interno del progetto utilizzando il menù Project\Add Existing Items;
2) selezionare il file all'interno del solution explorer e selezionare il menù contestuale properties;
3) modificare la proprietà Build Action in Embedded Resource;
4) utilizzare il seguente codice per caricare il contenuto del file all'interno di un array di byte:
.
.
Dim As As System.Reflection.Assembly
Dim st As System.IO.Stream
Dim bytearray As Byte()
As = Reflection.Assembly.GetExecutingAssembly
st = As.GetManifestResourceStream("RootNamespace.file.ext")
ReDim bytearray(CInt(st.Length) - 1)
st.Read(bytearray, 0, CInt(st.Length))
st.Close()
.
.
RootNameSpace è il nome del namespace root dell'assembly mentre file.ext è il nome del file inserito nel progetto.
La chiamata del metodo GetManifestResourceStream può sollevare un'eccezione se il file supera la dimensione di 2GB.