Es ist notwendig, alle externen Dateien in die ausführbare Datei einzubetten und Ihren Code so zu ändern, dass er mit diesen eingebetteten Dateien arbeitet, anstatt Dateien auf der Festplatte zu erwarten.
Um Bilder oder was auch immer Sie benötigen files("xml/txt/doc") zu verwenden, müssen Sie die Build-Aktion Ihrer Datei auf Embedded Resource setzen und die Methode mit dem voll qualifizierten Namen der Datei aufrufen, wobei der Name wie folgt zusammengesetzt wird:
[RootNameSpaceOfTheProject].[NameOfFolderInTheProject].[FileNameWithExtension]
Ejemplo:
Rufen Sie die Methode auf:
var b = ResourceOperations.GetResourceAsByteArray("Store.Resources.EmbeddedIcons.toolbox.png"); Nun können Sie das Byte-Array zum Beispiel in eine temporäre Datei schreiben und diese als Bildquelle verwenden, oder Sie können ein Bild direkt aus dem Byte-Array erstellen. Zumindest haben Sie Ihre Daten...
und um diese Dateien auf einer Festplatte zu speichern, sollten wir einen Code schreiben, der @ Jon Skeet :
public static void CopyStream(Stream input, Stream output)
{
// Insert null checking here for production
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
dann rufen Sie es an:
using (Stream input = assembly.GetManifestResourceStream(resourceName))
using (Stream output = File.Create(path))
{
CopyStream(input, output);
}