Ich hätte an dieser Stelle 3 DLL's erzeugt, eine für Map3D, eine für AIA und eine dritte, die als Lib für beide herhält und die allgemeinen Teile hält, diese Lib wird in den erstgenannten referenziert.
Das macht dann 2 Solutions, sprich 2 Kompiliervorgänge.
Eine DLL für beides wird imho nicht funktionieren, da es unterschiedliche Verweise gibt, und selbst wenn diese noch keine Exception beim ersten Initialisieren bringen würden, kannst Du Dich nicht der Situatin erwehren, dass in manchen Funktionssignaturen Verweisen nachgegangen wird und dann die Exception zustandekommt (solange Du nicht vollends late-binding betreibst).
Im Code selbst könntest Du sogar innherhalb von Funktionen für einzelne Zeilen auf Compiler-Directiven abfragen wie z.B.
Code:
#if MAP then
...<code for Map3D>
#elseif AIA then
...<code for Infrastructure Administrator>
#endif
... in diesem Fall hast Du zwar den Vorteil, dass Du in VS in den erweiterten Compilereinstellungen dann "benutzerdefinierte Konstante" hast (eben "AIA" oder "MAP") und diese umschaltest; gleichzeitig dann aber den Nachteil, dass die DLL noch immer den gleichen Namen hätte, also immer überschrieben würde.
Darum würde ich entweder ganz sauber 2 Solutions mit 3 DLL's haben oder den gemeinsamen Code statt in einer dritten DLL direkt im VS-Projekt und jedem VS-Projekt seinen Compilerswitch gesetzt.
Hoffe das war verständlich und hilfreich.
------------------
www.cars4fun.at
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP