Laden...

Resourcen : Erstellungsproblem.

Erstellt von Andreas.May vor 15 Jahren Letzter Beitrag vor 15 Jahren 1.087 Views
Andreas.May Themenstarter:in
915 Beiträge seit 2006
vor 15 Jahren
Resourcen : Erstellungsproblem.

Hallo Comunity,

ich erstelle zur Laufzeit ein kleines UI Control das ein Form aufruft das dem Designer "Choose Resource" Dialog nahe kommt.

Innerhalb dieser Form möchte ich dem Programmierer erlauben "Image" Resourcen in seine gewählte Resourcendatei reinzuschreiben.

Der Codeauszug dafür:


  private void ImportIntoResource()
        {
            string sRes = this.m_cbProject.SelectedItem as string; /// ->> "UtilitiesLib.Properties.Resources.resources"
                                                                   /// 
            if (string.IsNullOrEmpty(sRes))
            {
                MessageBox.Show("choose an resource to bind the data.");
                return;
            }

            using (OpenFileDialog _dlg = new OpenFileDialog())
            {
                _dlg.Multiselect = true;

                _dlg.Filter = "(*.jpg)|*.jpg|(*.bmp)|*.bmp|(*.gif)|*.gif|(*.png)|*.png";
                _dlg.InitialDirectory = ".\\";
                _dlg.RestoreDirectory = true;

                if (_dlg.ShowDialog() == DialogResult.OK)
                {
                    foreach (string _fn in _dlg.FileNames)
                    {
                        FileInfo fileInfo = new FileInfo(_fn);
                        if (fileInfo.Exists)
                        {

                            sRes = sRes.Replace(".", @"\");
                            sRes = sRes.Replace(@"\resources", ".resx");
                            sRes = string.Format(@"{0}\{1}", Environment.CurrentDirectory, sRes); // important: only design runtime!


                            using (IResourceWriter writer = new ResourceWriter(sRes))
                            {
                                Image img = Image.FromFile(fileInfo.FullName);
                                writer.AddResource(fileInfo.Name, img);
                            }
                        }

                    }
                }
            }

            this.ListResource(sRes);
        }

Das ganze lässt sich ausführen aber verursacht den Fehler das die Resourcendatei .rsx wohl ein anderes Format benutzt als die Methode ResourceWriter wohl erstellt.
Bei mir erscheint dann folgende Fehlermeldung:

Ungültige Resx-Datei. Ungültiges Zeichen in der angegebenen Codierung. D:\Entwicklung\SkinningTool\UtilitiesLib\Properties\Resources.resx

Die Frage ist nun, muss ich das Format der .resx Datei nacherstellen und den Stream selbst eintragen oder sollte der ResourceWriter es eigentlich erlauben in die bestehende Datei reinzuschreiben?

Das was mich wundert ist hauptsächlich die Dateiendung, die VS .resx Datei wird beim auslesen von resourcen immer mit Dateiendung ".resources" angezeigt. Steckt die Datei evtl. in der ".resx" Datei....

Vielen Dank im vorraus.

Wie vernichtet stand Andreas unter den flammenden Augen seiner Kunden.
Ihm war's, als stünde des Schicksals dunkle Wetterwolke über seinem Haupte X(

49.485 Beiträge seit 2005
vor 15 Jahren

Hallo Andreas.May,

Ungültige Resx-Datei. Ungültiges Zeichen in der angegebenen Codierung. D:\Entwicklung\SkinningTool\UtilitiesLib\Properties\Resources.resx

klingt nach falschem Encoding.

herbivore