2016-07-22 9 views
0

Ich verstehe diese Präprozessordirektiven nicht wirklich, was ich schreiben muss. Ich entwickle eine Bibliothek, die für viele Frameworks funktionieren sollte, z. .net Framework 4.5, 4.6, ... und für meine Anwendung, die mit Framework .NETStandard Version 1.5 läuft -> also denke ich, das ist dnxcore50?Präprozessordirektive in niget-Bibliothek

public class MyClass 
{ 
#if DOTNET5_4 
    // do nothing 
#else 
    public void MyMethod() 
    { 
     Console.WriteLine("framework is supported"); 
     // and do anything with libraries available in the framework :) 
    } 
#endif 
} 

so ist es das, was ich jetzt habe, aber MyMethod ist mit einem anderen Rahmen nicht zur Verfügung. Die Verwendung von #if DOTNETCORE50 funktioniert auch nicht.

Ich habe auch versucht, Einschränkungen zu definieren, aber mein Projekt kann nicht geladen werden, wenn ich dies versuche.

Irgendeine Idee, was die richtige Lösung ist?

+0

Verwandte: http://stackoverflow.com/questions/3436526/detect-target-framework-version-at-compile-time –

+0

@x ... habe ich versucht, dies bereits aber nachdem ich meine Lösungsdatei geändert habe, kann das Projekt immer nicht geladen werden. –

+0

Nicht Lösungsdatei, Projektdatei. Sie bearbeiten die falsche Datei. –

Antwort

0

Sie müssen sie nicht mehr in der Projekt-/Lösungsdatei definieren.

Also, ich nur eine Antwort hinterlassen den aktuellen Zustand passend (einige sind immer noch wie net47 fehlen und so weiter, aber Sie wissen, was ich meine):

#if (NET45 || NET451 || NET46 || NET461) 
#define NetFramework 
#endif 

#if (NETSTANDARD1_0 || NETSTANDARD2_0 || NETSTANDARD1_5 || NETSTANDARD1_3 || NETSTANDARD1_6 || NETCOREAPP1_0 || NETCOREAPP1_1 || NETCOREAPP2_0) 
#define NetCore 
#endif 

in welcher Weise sie sind jetzt kompatibel oder überflüssig, ich weiß es nicht. Aber das sind die aktuellen Namen, die ich kenne.

dann können Sie

public class MyClass 
{ 

#if NetFramework 
    public void MyMethod() 
    { 
     Console.WriteLine("framework is supported"); 
     // and do anything with libraries available in the framework :) 
    } 
#endif 

} 
Verwandte Themen