Sie können mithilfe von überprüfen, ob die Ressourcen korrekt eingebettet sind
//From the assembly where this code lives!
this.GetType().Assembly.GetManifestResourceNames()
//or from the entry point to the application - there is a difference!
Assembly.GetExecutingAssembly().GetManifestResourceNames()
beim Debuggen. Dadurch werden alle (vollständig qualifizierten Namen) aller Ressourcen aufgelistet, die in die Assembly eingebettet sind, in die Ihr Code geschrieben ist.
Siehe Assembly.GetManifestResourceNames () auf MSDN.
Kopieren Sie einfach den entsprechenden Namen und verwenden Sie diesen anstelle dessen, was Sie in der Variablen 'resourceName' definiert haben.
Hinweise - Der Ressourcenname unterscheidet zwischen Groß- und Kleinschreibung. Wenn Sie die Ressourcendatei falsch eingebettet haben, wird sie nicht in der Liste angezeigt, die vom Aufruf von GetManifestResourceNames () zurückgegeben wird. Stellen Sie außerdem sicher, dass Sie die Ressource aus der richtigen Assembly lesen (wenn mehrere Assemblys verwendet werden). Es ist allzu einfach, die Ressourcen aus der aktuell ausgeführten Assembly und nicht aus einer Assembly zu beziehen, auf die verwiesen wird.
BEARBEITEN - .NET Core In
diesem SO-Beitrag finden Sie Details zum Einbetten mit .NET Core.
Das Abrufen der Manifestinformationen sieht ähnlich aus. Verwenden Sie this.GetType().GetTypeInfo().Assembly.GetManifestResourceNames()
diese Option, um das Manifest von der Assembly abzurufen, in der der Code ausgeführt wird.
Ich habe noch nicht herausgefunden, wie man das Äquivalent zu Assembly.GetExecutingAssembly()
.NET Core macht! Wenn jemand weiß - bitte lassen Sie es mich wissen und ich werde diese Antwort aktualisieren.