| 

.NET C# Java Javascript Exception

1
Hallo zusammen,

ich möchte aus verschiedenen Gründen die Dateinamen meiner Assemblies mit Versionsnummern versehen, z.B. My.Controls.v1.2.dll. Dies ist soweit kein Problem. Allerdings ist mir aufgefallen, das referenzierende Projekte dann im XAML ebenfalls die Version angeben müssen, was natürlich zu Mehraufwand nach Updates führt.

Beispiel:
xmlns:ribbon="clr-namespace:Microsoft.Windows.Controls.Ribbon;assembly=RibbonControlsLibrary
oder
xmlns:MyWPF="clr-namespace:My.Controls;assembly=My.Controls.v1.2"

Wenn ich mir hingegen die Controls von Infragistics angucke, dann wird der Namespace ohne Nennung der Assembly angegeben
xmlns:igDock="http://infragistics.com/DockManager"

Reicht m.E. nach auch, denn das Projekt selbst hat ja sowieso einen physischen Verweis auf die Assembly mit der gewünschten Versionsnummer (sollten mehrere nebeneinander existieren). Die Frage meinerseits ist nun, wie man diesen Effekt nachahmen kann - sprich: Referenzieren ohne den Dateinamen der Assembly mit aufzunehmen?
News:
21.09.2011
Jens Duczmal 2,6k 1 3 9
Jens Duczmal 2,6k 1 3 9
2 Antworten
1
Hm.....nächstes mal Google ich vorher :)

Eine vorläufige Lösung, könnte so aussehen (Würde mich freuen, wenn mir jemand von Euch bestätigen könnte, das dies der beste/einzige Weg ist):

Man öffne in VisualStudio die Assembly.Info.cs der Komponenten-Assembly.
Dort trägt man dann einfach folgendes ein:

[assembly: XmlnsDefinition("http://My.de/Controls", "My.Controls")]


Vorne die URL die man nehmen möchte (diese muss nicht existieren) und hinten den Namespace der darunter erreichbar sein soll. Interessanterweise scheint sich die Assembly dann "wie von Geisterhand" zu finden (gut, wir haben ja einen Verweis drauf, das ist mir schon klar). Allerdings täte mich einmal interessieren, warum hier ein gewisser Extraaufwand betrieben werden muss und welchen Vorteil/Sinn es haben könnte, den Namen der Assembly bei der normalen Vorgehensweise im Namespace referenzieren zu müssen.

Fachleute vor bitte :)
21.09.2011
Jens Duczmal 2,6k 1 3 9
2
hach, du bist nicht zufällig auf mein Beispiel gestoßen : ) http://www.biggle.de/blog/xaml-namespace-ala-microsoft-schema zwar im anderen Kontext, aber mit dem selben Ergebnis
Mario Priebe 21.09.2011
1
Nein, auf der Seite nicht. Aber danke für ein zusätzliches Bookmark :)
Jens Duczmal 21.09.2011
0
Hat man nur ein Namespace und Assembly bringt das Attribut kaum was, wenn aber wie z.B. bei Control Suites mehrere Assemblies oder sogar Namespaces unter einem Xml-Namespace vereinen muss, ist das ein riesen Vorteil. Dafür ist es dann auch im Prinzip gedacht.
21.09.2011
sebastianstehle 444 6
Es bringt mir insofern schon etwas, als das ich nicht x Usercontrols abändern muss, wenn ich von Version 0.8 auf 0.9 update.

Allerdings knabber ich noch an ResourceDictionaries, denn in der Source="pack://application..." muss ich doch leider wieder den versionierten Dateinamen nehmen :(
Jens Duczmal 21.09.2011
1
schau mal hier, vielleicht ist dein zweites Szenario dabei: http://blogs.msdn.com/b/wpfsdk/archive/2007/03/22/blogpost-text-creatingasimplecustommarkupextension.aspx
Mario Priebe 21.09.2011
1
Oh, das sieht genau nach dem aus, was ich gesucht habe. Werde ich gleich morgen früh umgehend ausprobieren. Vielen Dank. Erstklassig. Ich kann's auch nochmal als Frage stellen und Du antwortest drauf :)
Jens Duczmal 21.09.2011

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH