2016-07-19 391 views
7

Ho creato la libreria di classi .NET Core e provo a crearla con il framework net40. Voglio usare la classe Clipboard dall'assembly System.Windows.Forms. Come posso fare questo?Come utilizzare System.Windows.Forms nella libreria di classi .NET Core

Il mio file project.json:

{ 
    "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 
      } 
     } 
    } 
} 

Tutto il mio codice specifico net40 è sotto NET40 definire. qualche idea?

+0

. NET Core è stato creato per creare sito Web e servizi Web senza dipendenze di Windows. Come diavolo avresti bisogno di accedere agli appunti su quel tipo di app? –

+1

Sì, hai ragione. Ma puoi anche creare un'applicazione console semplice con .NET Core. Ho provato a creare una console personalizzata per le mie esigenze con funzionalità di copia/incolla, quindi ho bisogno di copiare i dati dagli appunti e incollarli sulla mia console. –

+0

Quindi devi trovare un'altra classe che fa parte di .NET Core per lavorare con gli appunti o passare a un'app console che ha come target "Legacy .Net". –

risposta

12

Quello che vi serve è "frameworkAssemblies", ad esempio:

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

Lavorare con Clipboard richiede anche l'impostazione del thread principale come STA, quindi non dimenticate di aggiungere [STAThread]-Main() nell'applicazione.

+0

Grazie, amico. Funziona! –

+5

come fare lo stesso nel nuovo formato di file di configurazione .csproj? – ZEE