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 brauchen Dateien ("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 zusammengestellt wird:
[RootNameSpaceOfTheProject].[NameOfFolderInTheProject].[FileNameWithExtension]
Beispiel:
![Geben Sie hier die Bildbeschreibung ein]()
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 dies als Bildquelle verwenden, oder Sie können direkt aus dem Byte-Array ein Bild erstellen. Zumindest haben Sie Ihre Daten...
und um diese Dateien auf eine Festplatte zu speichern, sollten wir einen Code schreiben von @Jon Skeet :
public static void CopyStream(Stream input, Stream output)
{
// Fügen Sie hier für die Produktion eine Überprüfung auf NULL ein
byte[] buffer = new byte[8192];
int bytesRead;
while ((bytesRead = input.Read(buffer, 0, buffer.Length)) > 0)
{
output.Write(buffer, 0, bytesRead);
}
}
rufen Sie es dann auf:
using (Stream input = assembly.GetManifestResourceStream(resourceName))
using (Stream output = File.Create(path))
{
CopyStream(input, output);
}