Laden...

XamlParseException durch Festlegen einer nicht vorhandenen Variable

Erstellt von Hunv vor 10 Jahren Letzter Beitrag vor 10 Jahren 3.452 Views
Hunv Themenstarter:in
193 Beiträge seit 2005
vor 10 Jahren
XamlParseException durch Festlegen einer nicht vorhandenen Variable

Hi,

ich weiß nicht, ob dies direkt mit WPF zu tun hat, aber da mein Fehler auf XAML-Code verweist, mache ich es einmal hier auf. Sollte es woanders ehr hingehören, darf der Thread gerne verschoben werden.

Ich bin derzeit dabei auf Basis dieses TreeViews ein TreeView für meine Bedürfnisse anzupassen.
Ich habe hierbei jedoch ein Problem, welches ich nicht ganz nachvollziehen kann.

Ich habe das "Original" ein wenig reduziert und in ein Test-Projekt von mir eingebunden. Wenn ich jetzt mein Test-Projekt ausführe, bekomme ich eine XamlParseException, die mich auf mein ViewModel verweisst. Die genaue Meldung lautet hier: > Fehlermeldung:

Zeilennummer "9" und Zeilenposition "14" von "Durch das Festlegen von connectionId wurde eine Ausnahme ausgelöst." .
Das Ding ist aber: ich habe nichts, was "connectionId" heißt. Auch das WPF TreeView aus dem oben angegebenen Link hat nichts, dass diesen Namen trägt.
Wenn ich den Projektordner im Explorer nach diesem String durchsuche, dann finde ich ihn in einer .g.cs-Datei. Dort wird es als Parameter übergeben:


void System.Windows.Markup.IComponentConnector.Connect(int connectionId, object target)

Die InnerExecption sagt nur > Fehlermeldung:

""Die Datei oder Assembly "Hardcodet.Wpf.GenericTreeView, Version=1.0.6.33174, Culture=neutral, PublicKeyToken=null" oder eine Abhängigkeit davon wurde nicht gefunden. Das System kann die angegebene Datei nicht finden.":"Hardcodet.Wpf.GenericTreeView, Version=1.0.6.33174, Culture=neutral, PublicKeyToken=null"}". Das klingt für mich ersteinmal so, dass er das TreeView nicht finden kann. Das kann ich erstmal nicht nachvollziehen, weil es im Zielordner vorhanden ist und auch im Designer funktioniert.

Ich habe zwar nun die Erkenntniss, dass das er scheinbar irgendein Problem mit der connectionId hat, aber viel weiter komme ich nicht.

Meine letzten Versuche waren einfach alles nochmal von vorne zu machen, aber auch das läuft immer wieder auf die gleichen Probleme hinaus. Ich kann hierbei auch nicht genau nachvollziehen nach welcher Änderung es nicht mehr geht. Ich war auch schon soweit, dass ich dachte, dass es nun geht, weil in der Testapplikation alles OK war, habe den complile-Modus auf Release gestellt und ab dem Moment ging es nicht mehr - weder im Release noch im Debug-Modus.

Ich habe das Projekt einmal angehägt, vielleicht kann jemand von euch einmal ein Blick drüber werfen? Ich komme hier leider echt nicht weiter 😦

Visit me @ www.beremote.net

Hunv Themenstarter:in
193 Beiträge seit 2005
vor 10 Jahren

So, nachdem ich jetzt den nächsten Tag gesucht habe, ist mir aufgefallen woher der Fehler kommt:
Die Original-Datei der "GenericTreeView.dll" heißt "Hardcodet.Wpf.GenericTreeView.dll". Den Namen habe ich gekürzt. Wenn die Assembly (/Referenz) den Originalname trägt, dann gibt es keinen Fehler.
Was ich aber nicht verstehe ist, warum ich die DLL nicht umbennen kann. Bisher bin ich immer davon ausgegangen, dass letztendlich Namespace etc. wichtig sind und der Dateiname der DLL eigentlich unwichtig ist. War das eine falsche Annahme oder sollte das in der Regel gehen? Wenn es eigentlich gehen sollte, wieso geht es in diesem Fall nicht?
Ich kann im Code nirgends eine Verweis auf den Originalnamen der DLL finden.

Visit me @ www.beremote.net