Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

1

12.08.2015, 19:45

.NET-DLL zu kompilierter Anwendung hinzufügen (Verweis)

Hi

Sagen wir ich hab die Programme "Program1" und "Program2". Program2 braucht einen Verweis zu "Library1" um zu funktionieren. Es kann aber nicht einfach im VS der Verweis zu "Library1" gesetzt werden, weil "Library1" zu diesem Zeitpunkt noch gar nicht existiert. "Program1" erstellt die "Library1" und soll sie jetzt so in "Program2" einfügen, dass "Program2" funktioniert.

Wie mache ich das?

BlueCobold

Community-Fossil

Beiträge: 10 738

Beruf: Teamleiter Mobile Applikationen & Senior Software Engineer

  • Private Nachricht senden

2

12.08.2015, 20:01

Abhängigkeiten der Projekte entsprechend setzen und (Pre-)Build-Steps nutzen.
Teamleiter von Rickety Racquet (ehemals das "Foren-Projekt") und von Marble Theory

Willkommen auf SPPRO, auch dir wird man zu Unity oder zur Unreal-Engine raten, ganz bestimmt.[/Sarkasmus]

3

12.08.2015, 20:12

Was?

Schorsch

Supermoderator

Beiträge: 5 145

Wohnort: Wickede

Beruf: Softwareentwickler

  • Private Nachricht senden

4

14.08.2015, 23:02

Du könntest mit der Klasse Assembly arbeiten und damit die DLL zur Laufzeit laden.
http://stackoverflow.com/questions/46548…ing-only-the-na
„Es ist doch so. Zwei und zwei macht irgendwas, und vier und vier macht irgendwas. Leider nicht dasselbe, dann wär's leicht.
Das ist aber auch schon höhere Mathematik.“

TrommlBomml

Community-Fossil

Beiträge: 2 117

Wohnort: Berlin

Beruf: Software-Entwickler

  • Private Nachricht senden

5

15.08.2015, 10:46

Das scheint mir auch der richtige weg. Wenn man Dll zur Laufzeit laden möchte, dann so. Bedenke aber, dass man geladene Assemblies nicht mehr entladen kann (innerhalb derselben App-Domain).

6

18.08.2015, 10:35

Ich gehe mal davon aus, dass du "Library1" als Projekt in der Projektmappe hast - dann kannst du einen Projektverweis setzen (im gleichen Fenster, wo du Verweise setzt).
Für den Fall, dass deine Library tatsächlich erst zur Laufzeit erstellt wird (was ich jetzt nicht glaube), dann musst du den von Schorsch beschriebenen Weg gehen.

Sacaldur

Community-Fossil

Beiträge: 2 301

Wohnort: Berlin

Beruf: FIAE

  • Private Nachricht senden

7

18.08.2015, 11:58

Für mich klingt es auch sehr danach, als wäre ein zur Laufzeit laden eher weniger das, was wirklich notwendig ist. Es gibt zwar Anwendungsfälle, in denen man derartige Dinge machen würde (bspw. ein Plugin-System), allerdings würde man in einem solchen Fall wissen, dass man die Bibliothek zur Laufzeit nachgeladen werden muss und könnte bereits richtig danach suchen.

Abgesehen davon solltest du nicht so kryptische Namen wie "Program1", "Program2" und "Library1" verwenden, sondern Namen, die den richtigen Verwendungszwecken entsprechen.
Ein Beispiel könnte "Game" (Awendung), "Editor" (Anwendung) und "Eingine"/"CoreCode"/... (Bibliothek) sein. In diesem Fall würde ein normales Einbinden reichen.
Ein anderes wäre "CMS" (Anwendung), "IDE" (Anwendung) und "Erweiterung"/"Plugin" (Bibliothek). In einem solchen Fall wäre wahrscheinlich ein Einbinden zur Laufzeit erforderlich, da die Erweiterungen auch von anderen Leuten nachträglich erstellt werden können.
Da das nicht aus den Namen ersichtlich ist, kann man nur raten, was gemeint sein könnte.
Spieleentwickler in Berlin? (Thema in diesem Forum)
---
Es ist ja keine Schande etwas falsch zu machen, als Programmierer tu ich das täglich, [...].

Werbeanzeige