2016-07-19 20 views
7

Ich habe .NET Core-Klassenbibliothek erstellt und versuchen, es gegen Net40 Framework zu erstellen. Ich möchte Clipboard-Klasse von System.Windows.Forms-Assembly verwenden. Wie kann ich das machen?Wie Verwenden von System.Windows.Forms in .NET Core-Klassenbibliothek

Meine project.json Datei:

{ 
    "version": "1.0.0-*", 

    "dependencies": { 
     "NETStandard.Library": "1.6.0" 
    }, 

    "frameworks": { 
     "netstandard1.6": { 
      "imports": "dnxcore50", 
      "buildOptions": { 
       "define": [ 
        "NETCORE" 
       ] 
      }, 
      "dependencies": { 
       "System.Threading": "4.0.11", 
       "System.Threading.Thread": "4.0.0", 
       "System.Threading.Tasks": "4.0.11" 
       } 
     }, 
     "net40": { 
      "buildOptions": { 
       "define": [ 
        "NET40" 
        ] 
       }, 
      "dependencies": { 
       // dependency should be here but there is no such dll 
      } 
     } 
    } 
} 

All mein net40 spezifischer Code ist unter NET40 definieren. Irgendwelche Gedanken?

+0

.NET Core wurde erstellt, um Website und Webservice ohne Abhängigkeit von Windows zu erstellen. Wie zum Teufel würdest du die Zwischenablage für diese Art von App benötigen? –

+1

Ja, Sie haben Recht. Aber Sie können auch eine einfache Konsolenanwendung mit .NET Core erstellen. Ich habe versucht, eine benutzerdefinierte Konsole mit Copy/Paste-Funktionalität für meine Bedürfnisse zu erstellen, also muss ich Daten aus der Zwischenablage kopieren und in meine Konsole einfügen. –

+0

Sie müssen also eine andere Klasse finden, die Teil des .NET Core ist, um mit der Zwischenablage zu arbeiten oder zu einer Konsolen-App zu wechseln, die auf "Legacy .Net" abzielt. –

Antwort

12

Was Sie brauchen, ist "frameworkAssemblies", zum Beispiel:

"frameworks": { 
    "netstandard1.6": { 
    "dependencies": { 
     "NETStandard.Library": "1.6.0" 
    } 
    }, 
    "net40": { 
    "frameworkAssemblies": { 
     "System.Windows.Forms": {} 
    } 
    } 
} 

Arbeiten mit Clipboard erfordert auch die Haupt-Thread als STA Einstellung, so vergessen Sie nicht [STAThread]-Main() in Ihrer Anwendung hinzuzufügen.

+0

Danke, Mann. Es klappt! –

+5

Wie mache ich das gleiche im neuen Konfigurationsdateiformat .csproj? – ZEE