Was sind VB.Net-Ressourcen und wie werden sie verwendet?

Nachdem die Teilnehmer in Visual Basic alles über Schleifen, bedingte Anweisungen und Unterroutinen gelernt haben, werden sie häufig gefragt: "Wie füge ich eine Bitmap, eine WAV-Datei, einen benutzerdefinierten Cursor oder einen anderen Spezialeffekt hinzu?" Eine Antwort sind Ressourcendateien. Wenn Sie Ihrem Projekt eine Ressourcendatei hinzufügen, wird diese für maximale Ausführungsgeschwindigkeit und minimalen Aufwand beim Packen und Bereitstellen Ihrer Anwendung integriert.

Die Verwendung von Ressourcendateien ist nicht die einzige Möglichkeit, Dateien in ein VB-Projekt aufzunehmen, hat jedoch echte Vorteile. Sie können beispielsweise eine Bitmap in ein PictureBox-Steuerelement einfügen oder die Win32-API von mciSendString verwenden. 

Microsoft definiert eine Ressource als "alle nicht ausführbaren Daten, die mit einer Anwendung logisch bereitgestellt werden".

Die einfachste Möglichkeit, Ressourcendateien in Ihrem Projekt zu verwalten, besteht darin, in den Projekteigenschaften die Registerkarte Ressourcen auszuwählen. Sie rufen dies auf, indem Sie im Projektmappen-Explorer oder in den Projekteigenschaften unter dem Menüpunkt Projekt auf Mein Projekt doppelklicken.

Arten von Ressourcendateien

  • Streicher
  • Bilder 
  • Icons
  • Audio
  • Dateien
  • Andere

Ressourcendateien vereinfachen die Globalisierung

Die Verwendung von Ressourcendateien bietet einen weiteren Vorteil: eine bessere Globalisierung. Ressourcen sind normalerweise in Ihrer Hauptassembly enthalten. In .NET können Sie jedoch auch Ressourcen in Satellitenassemblys packen. Auf diese Weise erzielen Sie eine bessere Globalisierung, da Sie nur die Satellitenassemblys einbeziehen, die benötigt werden. Microsoft gab jedem Sprachdialekt einen Code. Beispielsweise wird der amerikanische Dialekt des Englischen durch die Zeichenfolge "en-US" angegeben, und der schweizerische Dialekt des Französischen wird durch "fr-CH" angegeben. Diese Codes identifizieren die Satellitenassemblys, die kulturspezifische Ressourcendateien enthalten. Wenn eine Anwendung ausgeführt wird, verwendet Windows automatisch die in der Satellitenassembly enthaltenen Ressourcen mit der in den Windows-Einstellungen festgelegten Kultur.

VB.Net-Ressourcendateien hinzufügen

Da Ressourcen eine Eigenschaft der Lösung in VB.Net sind, greifen Sie auf sie wie auf andere Eigenschaften zu: namentlich mithilfe des My.Resources-Objekts. Schauen Sie sich zur Veranschaulichung diese Anwendung an, in der Symbole für die vier Elemente von Aristoteles angezeigt werden: Luft, Erde, Feuer und Wasser.

Zuerst müssen Sie die Symbole hinzufügen. Wählen Sie in den Projekteigenschaften die Registerkarte Ressourcen. Fügen Sie Symbole hinzu, indem Sie im Dropdown-Menü Ressourcen hinzufügen die Option Vorhandene Datei hinzufügen auswählen. Nachdem eine Ressource hinzugefügt wurde, sieht der neue Code folgendermaßen aus:

Private Sub RadioButton1_CheckedChanged (…
Verarbeitet MyBase.Load
Button1.Image = My.Resources.EARTH.ToBitmap
Button1.Text = "Erde"
End Sub

Einbetten mit Visual Studio

Wenn Sie Visual Studio verwenden, können Sie Ressourcen direkt in Ihre Projektassembly einbetten. Diese Schritte fügen ein Bild direkt zu Ihrem Projekt hinzu:

  • Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Projekt. Klicken Sie auf Hinzufügen und dann auf Vorhandenes Element hinzufügen.
  • Navigieren Sie zu Ihrer Bilddatei und klicken Sie auf Öffnen.
  • Zeigen Sie die Eigenschaften für das gerade hinzugefügte Bild an.
  • Setzen Sie die Eigenschaft Build Action auf Embedded Resource.

Sie können die Bitmap dann direkt in einem Code wie diesem verwenden (wobei die Bitmap die dritte war, Indexnummer 2 in der Assembly)..

Dim res () As String = GetType (Form1) .Assembly.GetManifestResourceNames ()
PictureBox1.Image = Neues System.Drawing.Bitmap (_
GetType (Form1) .Assembly.GetManifestResourceStream (res (2))

Obwohl diese Ressourcen als Binärdaten direkt in der Hauptassembly oder in Satellitenassemblydateien eingebettet sind, wird beim Erstellen Ihres Projekts in Visual Studio auf sie durch ein XML-basiertes Dateiformat verwiesen, das die Erweiterung .resx verwendet. Beispiel: Hier ist ein Ausschnitt aus der soeben erstellten RESX-Datei:


type = "System.Resources.ResXFileRef,
System.Windows.Forms ">
… \ Resources \ CLOUD.ICO; System.Drawing.Icon,
System.Drawing, Version = 2.0.0.0,
Kultur = neutral,
PublicKeyToken = b03f5f7f11d50a3a

Da es sich nur um XML-Textdateien handelt, kann eine RESX-Datei nicht direkt von einer .NET Framework-Anwendung verwendet werden. Es muss in eine binäre ".resources" -Datei konvertiert und Ihrer Anwendung hinzugefügt werden. Dieser Job wird von einem Hilfsprogramm namens Resgen.exe ausgeführt. Möglicherweise möchten Sie dies tun, um die Satellitenassemblys für die Globalisierung zu erstellen. Sie müssen resgen.exe an einer Eingabeaufforderung ausführen.

Quelle

"Ressourcenübersicht." Microsoft, 2015.