2017-05-18 8 views
16

Ich habe eine NetCoreApp (v1.1) in Visual Studio 2017 erstellt. Wenn ich es kompiliere, erhalte ich eine DLL anstelle der erwarteten EXE für das erstellte Projekt. Ich habe die csproj Datei überprüft und bestätigt, dass der Ausgabetyp auf exe gesetzt ist, aber keine Würfel.VS2017 NetCoreApp als EXE kompilieren

Irgendwelche Ideen, warum VS2017 immer noch eine DLL produziert? Ich bin sicher, es ist eine schnelle Einstellung irgendwo, dass ich vergessen habe ... es ist auch 1 Uhr morgens. :)

<Project Sdk="Microsoft.NET.Sdk"> 

    <PropertyGroup> 
    <OutputType>Exe</OutputType> 
    <TargetFramework>netcoreapp1.1</TargetFramework> 
    </PropertyGroup> 

    <PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|AnyCPU'"> 
    <PlatformTarget>AnyCPU</PlatformTarget> 
    </PropertyGroup> 

    <ItemGroup> 
    <ProjectReference Include="..\Core.EF.SqlServer\Core.EF.SqlServer.csproj" /> 
    </ItemGroup> 

</Project> 

Antwort

25

.NET Core-Anwendungen sollen .dll Dateien sein. OutputType eingestellt auf Exe bedeutet in diesem Fall "ausführbar" und tut alles Notwendige um sicherzustellen, dass die Ausgabe ausführbar ist (Einsprungpunkt von Main() Methode, .runtimeconfig.json Datei). Das resultierende DLL-Datei soll verwendet werden, auszuführen:

dotnet yourapp.dll 

Diese DLL-Datei auf allen Plattformen funktioniert, die von der .net Kernlaufzeit unterstützt (Windows, Linux, MacOS). Dies wird als "portable" oder "Framework-abhängige" Bereitstellung bezeichnet.

Wenn Sie wirklich eine .exe Datei möchten, betrachten Sie eigenständige Bereitstellungen. Dadurch wird eine Ausgabe erstellt, die eine eigene Kopie der .net-Kernlaufzeit und eine yourapp.exe-Datei enthält. Darüber hinaus wird die Größe der veröffentlichten Anwendung erhöht, und sie muss aktualisiert werden, wenn neue Versionen der Laufzeitumgebung veröffentlicht werden. Auch die resultierende Anwendung funktioniert nur auf dem Betriebssystem für veröffentlicht.

Weitere Informationen zu den Bereitstellungsoptionen und deren Einrichtung finden Sie unter .NET Core application deployment.

+3

Danke für die Informationen zu den verschiedenen Einsatzstrategien. Das hat mir beim Verständnis von .net-core ein wenig geholfen. – ajawad987

Verwandte Themen