Autor Beitrag
jaenicke
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Mi 04.05.22 19:49 
Ich habe eine Klasse erstellt, die ich gerne in mehreren Projekten nutzen würde. Die Datei liegt im gleichen Repository, aber außerhalb des C# Projekts, sprich ein relativer Pfad wäre möglich.

Gibt es in C# nun wie in Delphi die Möglichkeit eine solche Datei einfach über einen relativen Pfad einzubinden oder muss ich dafür ein eigenes Bibliotheksprojekt erstellen?

Ich habe zu der konkreten Fragestellung leider nichts gefunden.

Crosspost:
www.delphipraxis.net...chnis-einbinden.html
Palladin007
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 1282
Erhaltene Danke: 182

Windows 11 x64 Pro
C# (Visual Studio Preview)
BeitragVerfasst: Mi 04.05.22 20:11 
Du kannst verlinken - ist aber etwas versteckt.
Füge die Datei als vorhandene Datei hinzu und klicke dann nicht im OpenFile-Dialog auf Öffnen (ich glaub, so hieß es), sondern auf den kleinen Pfeil daneben.

Oder Du nutzt ein Shared-Projekt, das ist für sowas da.
Technisch wirkt es zwar immer so, als wird es etwas stiefmütterlich behandelt, aber es funktioniert.

Allerdings solltest Du in jedem Fall ein eigenes Projekt erstellen, das erspart dir langfristig Stress - eine sinnvolle Struktur vorausgesetzt.
Ralf Jansen
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 4700
Erhaltene Danke: 991


VS2010 Pro, VS2012 Pro, VS2013 Pro, VS2015 Pro, Delphi 7 Pro
BeitragVerfasst: Mi 04.05.22 21:03 
Wenn ich was in mehreren Projekten brauche sollte es Teil einer eigene Assembly (einer Shared Library) sein. Das ist so üblich im Net Umfeld umd man sollte da eher nicht gegen arbeiten.
Anders Ausdruck man sollte .Net nicht wie Delphi verwenden und Delphi nicht wie .Net macht einen nur unglücklich.

Selbst das Framework ist mittlerweile in Millionen (gefühlt) Einzelteile zerlegt da mit ich sie mir einzeln als (Mini)Assembly per Nuget nachladen kann und nie das ganze Framework brauche.
Verlinken wird auch schwer wenn die benötigten Klassen sich über mehrere Dateien erstrecken (partial Klasses) um generiertes von manuellem Code trennen oder Plattformspezifischen Code von einander zu trennen.
Dann fängst du an mehrere Dateien verlinken zu müssen. Eine Shared Assembly ist aber was furchtbar simples.

Siehe unten rechts für den Knopf den du nicht benutzen solltest ;)

AddAsLink
Einloggen, um Attachments anzusehen!
jaenicke Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 19272
Erhaltene Danke: 1740

W11 x64 (Chrome, Edge)
Delphi 11 Pro, Oxygene, C# (VS 2022), JS/HTML, Java (NB), PHP, Lazarus
BeitragVerfasst: Do 05.05.22 07:01 
Den Pfeil beim Hinzufügen habe ich tatsächlich übersehen. Dann wird in der Projektdatei auch ein relativer Pfad daraus.

Vielen Dank!

Noch ein paar Worte zum Hintergrund:
Ich verwende DllExport um nativ exportierte Funktionen zur Verfügung zu stellen. Das funktioniert auch sehr gut, aber dafür muss der entsprechende Export logischerweise auch in der Assembly passieren, die ich aus Delphi heraus direkt einbinde.

Vielleicht löse ich das trotzdem anders und setze voraus, dass jeder die Funktion exportiert und die Assembly initialisiert. Mal schauen...

// EDIT:
Mit einer eigenen Assembly bekomme ich leider Schutzverletzungen. Das Problem ist, dass ich nativ exportierte Funktionen offenbar nicht debuggen kann, so dass das nicht so einfach zu debuggen ist, wenn ich nur die Assemblerebene dafür nutzen kann. Aber zumindest klappt es mit der verlinkten Datei.