Suchergebnisse
Suchergebnisse 1-14 von insgesamt 14.
Hier erfahren Sie, wie einfach Sie Ihren Browser aktualisieren können.
-
@EaranMaleasi Jou, das sehe ich auch so. Zitat von DrZwockel: „jedes mal, wenn sich ein Parameter verändert oder hinzukommt,“Wie sieht es denn aus, wenn Du per String.Format() einen variablen String generierst, der dann verwendet wird? Der lässt sich dynamisch testen und die vom @ErfinderDesRades genannten Probleme und Gefahren treten da nicht auf.
-
@DrZwockel Dann ist es besser, Du machst ein Plugin-System, wo neue Syntaxe drin compiliert werden. Das Programm lädt alle DLLs des entsprechenden Plugin-Systems und füttert sie der Reihe nach, bis der Output stimmt. Wurde keine Übereinstimmung gefunden, musst Du eine neue DLL machen. Feddich.
-
Zitat von DrZwockel: „allerings kann ich mit der Begriffllichkeit "Plugin-System" nichts anfangen“Dafür gibt es die Suchfunktion: Wie erstelle ich ein PlugIn System unter VB.NET (Framework 2) Erstellen eines Plugin-Systems mit VB.NET und MEF ab .NET 3.5
-
@DrZwockel Das geniale an diesem System ist, dass Du mit Interfaces ohne Inhalt ( ) Zuordnungen und Sortierungen von Plugin-DLLs vornehmen kannst ohne eine einzige zusätzliche Zeile Code. Es genügt, dass eine DLL-Klasse ein (leeres) Interface implementiert, um sie als solche zu erkennen.
-
Zitat von DrZwockel: „im Betrieb ist es voll in die Hose gegangen.“Wie äußert sich das?
-
@DrZwockel Kommen in dieser DLL weitere Klassen / Interface vor? Kannst Du mal ein kleines Testprojekt machen, das den Effekt reproduziert? Wenn ja: ohne Binaries zippen und anhängen.
-
Zitat von DrZwockel: „nur finde bzw. sehe ich es nicht“In Deinem Code finde und sehe ich auch nichts, dazu wäre das compilierbare Projekt von Nöten, das ich nicht habe. Mach ein separates Rumpf-Projekt auf Basis dieses Projekts und schmeiß allen direkten DB-Zugriff raus, weil es daran nicht liegen sollte. Überzeuge Dich, dass Dein Effekt weiterhin auftritt. wenn Du das Projekt "minimiert" hast, zippe es ohne Binaries und häng es an einen Post.
-
Zitat von DrZwockel: „das nur läuft, wenn es sich in (hier Excel) eingebunden hat.“Ist schon klar. Ich meinte, dass Deine Datenstruktur da egal sein sollte, nimm also eine praktisch leere Tabelle mit einer Spalte oder so.
-
@DrZwockel Zu viel Schrott. Sorry.- Machst Du Option Strict On. - Generiere Dir eine Projektmappe. Gehe ins MEF-Projekt und füge im Menüpunkt "Datei - Projekt hinzufügen" dsas Projekt "Plugin" der Projektmappe hinzu => da kannst Du gemeinsam debuggen. - Füge dieser Projektmappe ein neues DLL-Projekt hinzu: "Plugins", dort kommen alle Interface rein: IPlugin - Das Plugin-DLL-Projekt (nicht aber die Datei Plugin.DLL) fügst Du beiden Projekten als Verweis hinzu. - Entferne alle Verweise auf MEF aus…
-
@DrZwockel Du hast es noch nicht verstanden. Der Sinn eines Plugin-Systems besteht darin, dass solche DLLs dynamisch geladen werden, also im Hauptprogramm kein Verweis darauf gesetzt werden muss. Damit sich die zu ladende DLL und das ladende Hauptprogramm verstehen, wird ein Interface benötigt. Da ggf. mehrere unabhängige DLLs nebeneinander liegen können, wird die Interface-DLL separat erstellt und jedem der beteiligten Projekte als Verweis hinzugefügt. Insbesondere bedeutet dies, dass das Haupt…
-
Zitat von DrZwockel: „Hast Du dafür eine Erklärung?“Deswegen arbeiten wir zunächst asn der Struktur Deines Projekts, und wenn die in Ordnung ist, an der Lösung des Problems. ============= Zitat: „VB.NET-Quellcode (7 Zeilen)“Dieser Teil gehört ins Hauptprogramm, denn dieses will ja die Plugins laden. Ich finde keine Implementierung Deines Interfaces, diese gehört eigentlich in die Plugin_1.dll.
-
Zitat von DrZwockel: „Der Fehler tritt dann auf, wenn der String zurückgegeben werden soll.“Zitat von RodFromGermany: „Machst Du Option Strict On.“
-
Zitat von DrZwockel: „Ich bin etwas ratlos ...“Wie wird "Roulade mit Klößen" in Boolen konvertiert? Gar nicht, weil es nicht geht.Du musst der Funktion den Rückgabetyp String geben. Außerdem solltest Du alle 3 Projekte in eine Projektmappe packen, so etwa: vb-paradise.de/index.php/Attac…b80a2d0e68b9e521ac935fe02 Sieh Dir das PostBuild-Event der DLL an.
-
@DrZwockel Das PostBuild-Bereich ist nichts anderes als eine Batch-Datei. Projektbezogene Pfade werden als Makro dargestellt, so dass sie auch auf anderen Rechnern problemlos laufen. Betätige mal unten im Dialog den Button Makros. vb-paradise.de/index.php/Attac…b80a2d0e68b9e521ac935fe02 ===== Bei mir sind im PostBuild-Ereignis die Pfade in Apostrophen eingeschlossen, weil da im Pfadnamen Leerzeichen vorkamen. Wenn in diesem Fall keine Apostrophen sind, funktioniert der Copy-Befehl nicht.