Seltsame Fehlermeldung

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Seltsame Fehlermeldung

Beitrag von Raven280438 » 16.10.2010, 19:55

Hi,

nachdem ich das erste Kapitel (XNA in WinForm) abgeschlossen habe, steh ich schonwieder vor dem nächsten Problem:
Es geht um das Beispiel http://create.msdn.com/en-US/education/ ... s_series_2

Ich habe ein Programm geschrieben, mit dem ich einfach ein Bild auswählen will und in dem XNA-Element anzeigen.
Das Programm lässt sich ohne Fehler starten, sobald ich aber ein Bild auswähle bekomm ich die MessageBox mit einer Fehlermeldung die ich nicht verstehe.

Hier die Funktion zum Bild-Auswählen:

Code: Alles auswählen

private void button1_Click(object sender, EventArgs e)
{
    if (this.openFileDialog1.ShowDialog() == DialogResult.OK)
    {
        Cursor = Cursors.WaitCursor;

        contentManager.Unload();
        
        // Tell the ContentBuilder what to build.
        contentBuilder.Clear();
        contentBuilder.Add(this.openFileDialog1.FileName, "Texture2D", null, null);

        // Build this new model data.
        string buildError = contentBuilder.Build();                 //Das hier schlägt Fehl,

        if (string.IsNullOrEmpty(buildError))
        {
            // If the build succeeded, use the ContentManager to
            // load the temporary .xnb file that we just created.
            texturControl.set_textur(contentManager.Load<Texture2D>("Texture2D"));
        }
        else
        {
            // If the build failed, display an error message.
            MessageBox.Show(buildError, "Error");               //Ich bekomm diese MessageBox mit der Fehlermeldung unten...
        }

        Cursor = Cursors.Arrow;
    }
}
Die Fehlermeldung die ich in der MessageBox bekomme ist
Bild


Hat jemand ne Ahnung was die Fehlermeldung bedeutet, oder was ich falsch mache?


Gruß

Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 17:33

Re: Seltsame Fehlermeldung

Beitrag von Despotist » 16.10.2010, 20:31

Ich nehme mal an der ContentBuilder ist eine Klasse die du verwendest (von jemand anderem). Diese Klasse liegt vermutlich in einer Assembly (.exe, .dll, .manifest). Die Fehlermeldung besagt dass die Assembly nicht kompatibel zu deiner ist. Am einfachsten wäre es wohl wenn du den Source der Klasse (und deren Abhängigkeiten) hast. Dann kannst du diese direkt in dein Projekt einbinden. Ich hatte auch schon mal so ein problem und habe es nicht hinbekommen. Hab mich aber auch noch nicht intensiv mit Assemblyversionen befasst.

Die Fehlermeldungen kannst du auch für Lösungsvorschläge googeln.

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 16.10.2010, 20:39

Hi,

danke für die Antwort.

ContentBuilder ist eine Klasse, die in dem oben verlinkten Projekt drin ist. Sie liegt als normale .cs Datei in meinem Projekt. Ich dachte erst, es hat etwas mit den References-Verionen zutun. Ich hab genau die gleichen Versionen wie im Beispiel genommen, hat aber nichts gebracht.


Gruß

Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 17:33

Re: Seltsame Fehlermeldung

Beitrag von Despotist » 16.10.2010, 20:48

Raven hat geschrieben: Sie liegt als normale .cs Datei in meinem Projekt.
Einfach in das Verzeichnis kopieren reicht da nicht. Du musst sie auch in das Projekt hinzufügen.

Die Fehlermeldung besagt ja auch dass eine "Message" nicht instanziiert werden konnte. Ist das eine andere Klasse aus dem Projekt die von ContentBuilder verwendet wird? Das meinte ich mit Abhängigkeiten.

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 16.10.2010, 20:55

Hi,

die Klasse ContentBuilder hab ich natürlich zu meinem Projekt hinzugefügt. Das Programm lässt sich ja auch ohne Probleme starten.

Von "Message" hab ich nichts in der Klasse gefunden.

Das Beispiel war ja eigendlich für ein 3D Model gedacht. Vielleicht funktioniert das mit einer normalen Grafik anders. Das weis ich nicht ;)


Gruß

Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 17:33

Re: Seltsame Fehlermeldung

Beitrag von Despotist » 16.10.2010, 20:59

Raven hat geschrieben: dass ihrer Hostabnwendung kein BindingRedirect Eintrag für Microsoft.Build.Framework fehlt
Wie siehts damit aus? Hast du das mal bei Abhängigkeit hinzufügen gesucht?

Ansonsten gehen mir langsam die Ideen aus ;).

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 16.10.2010, 21:11

Ich verstehe nicht...

was muss ich dafür machen?

Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 17:33

Re: Seltsame Fehlermeldung

Beitrag von Despotist » 16.10.2010, 21:24

Im Projektexplorer Rechtsklick auf Projekt. Verweis hinzufügen. Tab .Net. Microsoft Build Framework auswählen. Ok

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 16.10.2010, 21:28

Achso, ich hab die englische Version, du meinst sicher "Add References".
Das hab ich schon gemacht, hab sowohl Microsoft.Build.Framework 2.0.0.0 und auch 3.5.0.0 probiert, geht beides nicht.

Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 17:33

Re: Seltsame Fehlermeldung

Beitrag von Despotist » 16.10.2010, 21:34

Du solltest mal versuchen einen Haltepunkt zu setzen wo es kracht und in die Funktion reinsteppen (Debugger). Dort kannst du dann wahrscheinlich sehen wo es passiert und woran es liegt.

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 16.10.2010, 21:44

Hi,

Code: Alles auswählen

string buildError = contentBuilder.Build();
schlägt fehl, gibt also einen buildError zurück.

Die Methode contentBuilder.Build() lautet

Code: Alles auswählen

public string Build()
        {
            // Clear any previous errors.
            errorLogger.Errors.Clear();

            // Build the project.
            if (!msBuildProject.Build())
            {
                // If the build failed, return an error string.
                return string.Join("\n\n", errorLogger.Errors.ToArray());
            }

            return null;
        }
msBuildProject ist vom Typ Microsoft.Build.BuildEngine.Project

Weiter komm ich nicht.

Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 17:33

Re: Seltsame Fehlermeldung

Beitrag von Despotist » 16.10.2010, 22:02

msBuildProject.Build() wird dann wohl fehlschlagen im Kontext einer "Message".

Wenn das BuildProject ordentlich initialisiert und konfiguriert ist weiß ich auch nicht. Mit den Infos sollte Google schon was brauchbares ausspucken.

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 16.10.2010, 22:05

Das wird schon richtig initialisiert sein, die Beispielanwendung funktioniert ja auch richtig.

Der einzige Unterschied ist, dass ich eine Texture2D lade, und in dem Beispielprogramm wird ein Model geladen.

Dirk Schulz
Establishment
Beiträge: 130
Registriert: 01.03.2009, 15:21
Alter Benutzername: frittentuete

Re: Seltsame Fehlermeldung

Beitrag von Dirk Schulz » 17.10.2010, 12:45

Hi,

scheint eine Inkompabilität zwischen Framework 2.0 und 3.5 zu sein.

Dazu gibt es hier einen Thread (mit ähnlicher Fehlermeldung):
http://social.msdn.microsoft.com/Forums ... 28b794368e


Kenne mich mit .NET nicht aus, falls du Probleme beim Verständnis haben solltest, ist hier bestimmt jemand, der dir helfen kann. :)

odenter
Establishment
Beiträge: 200
Registriert: 26.02.2009, 12:58

Re: Seltsame Fehlermeldung

Beitrag von odenter » 17.10.2010, 13:37

Stell Dein Projekt doch mal so ein das .NET 2.0 verwendet wird.

Wenn Du ein 64 Bit OS hast, dann könnte es auch sein das am Ende eine 32Bit *.dll verwendet wird. Falls das der Fall ist in den Projekteinstellungen einfach auf x86 stellen. Ansonsten denkt der JIT nämlich 64 Bit OS wunderbar machen wir auch mal 64 Bit Code.

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 17.10.2010, 15:00

Ich hab das Projekt auf .NET 2.0 umgestellt, hat aber nichts gebracht.

Ich hab ein 32bit OS, daran kann es also auchnicht liegen

Dirk Schulz
Establishment
Beiträge: 130
Registriert: 01.03.2009, 15:21
Alter Benutzername: frittentuete

Re: Seltsame Fehlermeldung

Beitrag von Dirk Schulz » 17.10.2010, 15:39

Hi,

hast du meinen Post gelesen?

falls nicht, hier nochmal der Link:
http://social.msdn.microsoft.com/Forums ... 28b794368e


Hast du das schon ausprobiert?

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 17.10.2010, 15:46

So richtig versteh ich da nicht was ich machen soll...
<?xml version="1.0" ?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Microsoft.Build.Framework" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="3.5.0.0"/>
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Microsoft.CompactFramework.Build.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral"/>
<bindingRedirect oldVersion="0.0.0.0-99.9.9.9" newVersion="9.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
Wo soll ich das ändern?

Dirk Schulz
Establishment
Beiträge: 130
Registriert: 01.03.2009, 15:21
Alter Benutzername: frittentuete

Re: Seltsame Fehlermeldung

Beitrag von Dirk Schulz » 17.10.2010, 15:56

ist das jetzt deine config-datei, oder die die im Forum steht? :?:

falls es nicht deine sein sollte:

in deinem Projektordner sollte es neben deiner exe (also der ausführbaren datei) auch eine exe.config geben, die ähnlich aufgebaut ist (also xml).

Diese solltest du darauf prüfen, ob sie mit den angegebenen Werten übereinstimmt.



Alle Angaben ohne Gewähr, da ich kein .NET benutze. ;)

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 17.10.2010, 16:51

Das is die config die in dem verlinkten Link steht.

Eine exe.config kann ich nirgends in meinem Projekt finden...

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 17.10.2010, 19:16

Hi,

ich hab jetzt die App.config aus dem Beispielprogramm in mein Projekt eingebunden. Das hat mich einen Schritt weiter gebracht, aber nicht ser viel :)

Die neue Fehlermeldung ist:
Bild

Das Ganze passiert, wenn ich einen Font nachladen will:

Code: Alles auswählen

Cursor = Cursors.WaitCursor;

contentManager.Unload();

// Tell the ContentBuilder what to build.
contentBuilder.Clear();
contentBuilder.Add(Path.Combine(Application.StartupPath,"Content/Arial.spritefont"), "font", null, null);

string buildError = contentBuilder.Build();

if (string.IsNullOrEmpty(buildError))
{
    this.texturControl1.set_font(contentManager.Load<SpriteFont>("font"));
}
else
{
    // If the build failed, display an error message.
    MessageBox.Show(buildError, "Error");
}

Cursor = Cursors.Arrow; 

Gruß

Raven280438
Establishment
Beiträge: 137
Registriert: 03.10.2010, 20:14

Re: Seltsame Fehlermeldung

Beitrag von Raven280438 » 17.10.2010, 19:38

Problem gefunden, es hat der Processor "FontDescriptionProcessor" gefehlt :)

Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 17:33

Re: Seltsame Fehlermeldung

Beitrag von Despotist » 17.10.2010, 20:02

Wieso nimmst du dir nicht selber die Exception zur Brust? Mehr als vorlesen was da steht können wir auch nicht (und wir haben deinen Code und deine Zeit nicht ;)). Ein bisschen mehr Eigeninitiative wäre schon schön. Wenn du jede Fehlermeldung die kommt hier postest kommst du nicht voran und lernst auch nichts. Schau was google dazu sagt und überlege selbst ein bisschen, probiere herum und Debugge. Spezifische Fragen kannst du gern stellen aber so wirkt es als ob wir dein Programm entwickeln sollen. Nicht Bös gemeint.

Antworten