.NET Framework auf 2.0 stellen ?

Programmiersprachen, APIs, Bibliotheken, Open Source Engines, Debugging, Quellcode Fehler und alles was mit praktischer Programmierung zu tun hat.
Antworten
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

.NET Framework auf 2.0 stellen ?

Beitrag von ponx »

hallo liebe Leute,
ich habe (dank eurer tollen Hilfe) einen .NET Wrapper für meine native .dll geschrieben, der auch grundsätzlich gut läuft. Bis jetzt hatte ich immer als .NET Zielframework 3.5 eingestellt und keine Probleme damit. Jetzt wollte ich die library unter Unity3d einbinden, und dafür muss das target Framework auf .NET 2.0 gestellt sein. Wenn ich das in den Properties meines Wrapper-Projekts einstelle, dann zeigt mir die Liste meiner Referenzen bei meinem nativen projekt die Fehlermeldung "incompatible framework" an. Und tatsächlich, laut den "Reference Protperties" ist das wohl auf .NET 3.5 gestellt. Jetzt bin ich etwas ratlos: Wie kann es sein, dass ein natives C++ Projekt überhaupt irgendeinen Bezug zu .NET hat ? In den "Common Properties" meines nativen Projekts wird tatsächlich als Target Framework 3.5 angezeigt, aber die ganze Seite ist ausgegraut und als not available angezeigt. Laut MSDN spielt das ja auch tatsächlich nur eine Rolle, wenn man für die CLR kompiliert. Wenn ich mir das .vcproj File dazu im Texteditor anguckt, dann sieht das erste Tag so aus:

<VisualStudioProject
ProjectType="Visual C++"
Version="9,00"
Name="CORE"
ProjectGUID="{6AA6F72A-179B-48BB-97C3-F33C47FF2140}"
RootNamespace="Psy"
Keyword="Win32Proj"
TargetFrameworkVersion="196613"
>

.. ich pfusch da jetzt natürlich ungern in der Versionsnummer rum ohne zu wissen was ich tue :/ . Also: kann mich jemand aufklären ob ich das grundsätzlich auf irgendwie .NET 2.0 stellen kann ? Oder hab ich vielleicht was grundsätzliches noch nicht kapiert ?

viele Grüße,
ponx
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: .NET Framework auf 2.0 stellen ?

Beitrag von Despotist »

Also Unity arbeitet nicht mit .Net sondern mit Mono (einem Open Source platformunabhängigen .Net Ersatz). Inwieweit .Net und Mono direkt kompatibel sind weiß ich leider nicht. Aber das aktuelle Unity benutzt Mono 2.6 welches das Äquivalent zu .Net 3.5 ist (also sollte es da mit deiner Version 3.5 keine Probleme geben wenn es kompatibel ist). Siehe hier: http://forum.unity3d.com/threads/82481- ... ch-version

Es kann auch sein dass du in deinem Wrapper .Net 3.5 spezifische Funktionen nutzt die es in 2.0 nicht gibt und dass deshalb diese Fehlermeldung kommt.
Benutzeravatar
Chromanoid
Moderator
Beiträge: 4263
Registriert: 16.10.2002, 19:39
Echter Name: Christian Kulenkampff
Wohnort: Lüneburg

Re: .NET Framework auf 2.0 stellen ?

Beitrag von Chromanoid »

Kann man überhaupt native DLLs in der Unity Indie Version einbinden?
Edit: Also wenn du kein gekauftes Unity hast dann sollte das soweit ich es verstehe laut http://unity3d.com/unity/licenses nicht funktionieren.
Despotist
Establishment
Beiträge: 394
Registriert: 19.02.2008, 16:33

Re: .NET Framework auf 2.0 stellen ?

Beitrag von Despotist »

Guter Einwand Chromanoid. Soweit ich weiß kannst du nur in der Pro-Version Plugins (dll's) ausführen.

Was macht denn deine dll? Vielleicht wäre ja ein Port auf C# einfacher?
Benutzeravatar
ponx
Establishment
Beiträge: 217
Registriert: 04.05.2008, 12:52
Echter Name: Andy Ponx
Wohnort: Hamburg
Kontaktdaten:

Re: .NET Framework auf 2.0 stellen ?

Beitrag von ponx »

vielen Dank für die Antworten ! Ich hab's jetzt wieder auf .NET 3.5 gestellt (danke Despotist!) , und ich kriege nach dem Start eine andere Fehlermeldung:

MissingMethodException: Method contains unsupported native code
<Module>.<CrtImplementationDetails>.LanguageSupport.Initialize (<CrtImplementationDetails>.LanguageSupport* )

.. ist dann wohl eher was für's Unity-Forum, aber vielleicht hat hier noch jemand eine Idee. Ich finde keine Möglichkeit zu erkennen, an was konkret es denn nun scheitert, also was nun "supported" ist und was nicht. Wenn externe .dlls grundsätzlich unterstützt werden, sollten doch auch die von Windows kein Problem sein ? in meiner naiven Welt :)

Zu Unity: Ja ich benutze die Pro-Version, und wegen Portierung nach C#: Es ist eine Musik-Engine die ich mit C#-Bordmitteln nicht implementieren kann, weil Mehrkanalsound nicht unterstützt wird.
Antworten