Distribuire un file assieme al setup di un programma C#



Oggi voglio mostrarvi come sia possibile distribuire un file assieme al setup di un programma C#.
L’esempio fa riferimento a VisualStudio 2008 ma dovrebbe essere analogo anche con altre versioni.
Anzitutto si deve aggiungere il file al progetto facendo click con il pulsante destro sul progetto e poi su Add Existing Item e selezionare il file da distribuire.
Successivamente sulle proprietà del file aggiunto impostare:
Build Action: Embedded Resource
Copy to output directory: Do not copy

Adesso creiamo il metodo LoadResource che si occuperà di trasferire il file dal progetto ad una cartella specifica il cui percorso supponiamo sia definito nella stringa ResourceDIR.
Il metodo LoadResource ha come input il nome del file che vogliamo distribuire.


public static void LoadResource(string filename)
{
Assembly asm = Assembly.GetExecutingAssembly();
int bufferSize = 4096; // use a buffer of 4KB

byte[] buffer = new byte[bufferSize];
using (Stream input = Assembly.GetExecutingAssembly().GetManifestResourceStream(asm.GetName().Name + "." + filename))
using (Stream output = new FileStream(ResourceDIR + filename, FileMode.Create))
{
int byteCount = input.Read(buffer, 0, bufferSize);
while (byteCount > 0)
{
output.Write(buffer, 0, byteCount);
byteCount = input.Read(buffer, 0, bufferSize);
}
}
}

A questo punto non ci resta che invocare il metodo LoadResource nel momento in cui vogliamo trasferire il file dal progetto al filesystem.

Annunci sponsorizzati:
Condividi su Facebook Condividi su Twitter!
Pinterest