2016-04-09 10 views
7

Ho compilato la mia applicazione console utilizzando il comando dnu build sul mio Mac. L'output è MyApp.dll.Come eseguire una DLL Core .Net?

Poiché non è MyApp.exe, come posso eseguirlo su Windows o anche su Mac?

Il codice è:

using System; 

class Program 
{ 
    public static void Main() 
    { 
     Console.WriteLine("Hello from Mac");   
    } 
} 
+0

Non sono librerie non eseguibili perché non hanno un entry point inserito in esse? – SolaGratia

+0

@BjarneStroustrup È un'applicazione console. Ho messo il codice per motivi di chiarezza. – mehrandvd

+2

http://stackoverflow.com/a/30377175/17034 –

risposta

7

Aggiungi questo al file project.json:

"compilationOptions": { 
     "emitEntryPoint": true 
}, 

Essa genererà il MiaApp.exe su Windows (in bin/Debug) oppure i file eseguibili su altre piattaforme.

Edit: 30/01/2017

Non è più sufficiente. Ora avete la possibilità tra la distribuzione dipendente dal framework e la distribuzione autonoma come descritto in here.

forma breve:

distribuzione Framework-dipendente (nucleo NET è presente nel sistema di destinazione)

  • Eseguire la dll con la linea di comando dotnet dotnet MyApp.dll

Implementazione autonoma (tutti i componenti incluso .net core runtime sono inclusi nell'applicazione)

  • Rimuovere "type": "platform" da project.json
  • Aggiungi runtime sezione per project.json
  • costruire con il sistema operativo di destinazione dotnet build -r win7-x64
  • Run generato MyApp.exe

file di project.json:

{ 
     "version": "1.0.0-*", 
     "buildOptions": { 
     "emitEntryPoint": true 
     }, 
     "frameworks": { 
     "netcoreapp1.0": { 
      "dependencies": { 
       "Microsoft.NETCore.App": { 
        "version": "1.0.1" 
       } 
      } 
     } 
     }, 
     "imports": "dnxcore50", 
     "runtimes": { "win7-x64": {} } 
    } 
+0

Questo non sembra più fare il trucco :( –

+0

@DouglasGaskell Grazie Ho modificato la risposta – Fabian

+3

Un'altra opzione è eseguire la dll con dotnet.exe: 'dotnet MyApplication.dll [argomenti dell'applicazione]'. –