Hallo, ich habe hier eine DLL, die unter .net 4.0 erstellt wurde und auch fehlerfrei funktioniert. Unter .net 3.5 gibt es allerdings Probleme: die DLL kann nicht geladen werden (sagt Visual Studio) und der PC versucht automatisch .net 4.0 zu installieren. Ich dachte eine DLL hat eine definierte Schnittstelle und muß lediglich über diese immer gleich angesprochen werden? - Da hab ich mich wohl getäuscht, oder? Gruß Sam
Klar hat eine DLL immer eine definierte Schnittstelle. Aber eine DLL hat in sich natürlich auch die Implementierung dieser Schnittstelle. Und wenn die Implementierung .net 4.0 benötigt, dann wird halt .net 4.0 auch installiert. Ist doch klar, oder? MfG Marius
Das ist soweit klar. Aber die DLL greift nur auf Funktionen zu, die es schon vor 100 Jahren gab (wie z.B. CreateFile() usw.). Deshalb bin ich etwas überrascht. Ich dacht, dass die DLL alles, was sie zur Implementierung braucht, in sich selber kapselt. Hm, das war aber die LIB, wenn ich so darüber nachdenke. Die DLL lädt die benötigten DLL's nach ...
es reicht schon in in den Infos der dll steht das sie für .net4.0 ist. Wozu braucht meine eine C# DLL die CreateFile macht? Wenn man das unbedingt braucht dann kann man doch gleich eine C-Dll erzeugen. Was spricht dageben die dll einfach für .net3.0 zu erzeugen, die geht dann auch unter 4.0?
Erstmal Danke für die Antworten. Es spricht nichts dagegen, die DLL einfach für .net 3.0 zu erzeugen ... vorausgesetzt es geht auch einfach. Kann ich das aus .net 4.0 heraus machen? Z.B. durch irgendein Flag, das man setzen kann? Oder muss ich von .net 4.0 auf .net 3.0 downgraden?
Sam schrieb: > Kann ich das aus .net 4.0 heraus > machen? kommt auf deine entwicklungsumgebung an. Normalerweise kann man das in den Projekteinstellungen machen
Wenn du eine Klassenbibliothek im .Net 4.0 erstellt hast, muss auf dem Zielsystem eben dieses Framework installiert sein. Du kannst deine Klassenbibliothek problemlos für eine andere Frameworkversion erstellen. Voraussetzung ist, dass du keine "neuen" Features aus der Version 4.0 verwendet hast. Die entsprechende Einstellungsmöglichkeit findest du bei den Projekteigenschaften (im Projekt explorer nen Doppelklick auf "Properties", dann sollte das schon im ersten Tab erscheinen).
Sam schrieb: > Hallo, > > ich habe hier eine DLL, die unter .net 4.0 erstellt wurde und auch > fehlerfrei funktioniert. Unter .net 3.5 gibt es allerdings Probleme: die > DLL kann nicht geladen werden (sagt Visual Studio) und der PC versucht > automatisch .net 4.0 zu installieren. > > Ich dachte eine DLL hat eine definierte Schnittstelle und muß lediglich > über diese immer gleich angesprochen werden? - Da hab ich mich wohl > getäuscht, oder? Ja und nein. Eine DLL ist eine DLL ist eine DLL, ausser wenn sie nur so heisst. Was Du mit .NET erstellst ist keine traditionelle DLL sondern eine sogenannte Assembly, enthält keinen Maschinencode sondern .NET-Bytecode, kann digital signiert sein, enthält spezifische Metadaten, usw., blah, fasel. Die .NET-Doku verrät Dir all das und noch mehr. Auch dass Assemblies meistens aufwärtskompatibel sind aber selten andersrum, ist ja irgendwie auch logisch.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.