2017-05-19 420 views
48

對於一個控制檯應用程序項目針對.NET 1.0的核心,我無法弄清楚如何構建過程中得到一個.exe輸出。項目在調試中運行良好。構建.NET Core控制檯應用程序以輸出EXE?

我已經試過出版項目,但不工作的。有意義,因爲.exe是平臺特定的,但必須有一個方法。我的搜索只能引用使用project.json的舊版.Net Core版本。

每當我建立或發佈,這是我得到的。

build directory

+5

[VS2017編譯NetCoreApp爲EXE(可能的重複http://stackoverflow.com/questions/44038847/vs2017-compile-netcoreapp -as-exe) –

+0

將它標記爲重複的那麼。 –

回答

66

爲了調試的目的,你可以使用DLL。您可以使用dotnet ConsoleApp2.dll運行它。如果你想生成一個exe文件,你必須生成一個自包含的應用程序。

要生成一個獨立的應用程序(EXE在Windows中),您必須在規定的目標運行時(你定位的OS)。

Pre-.NET核2.0只:首先,添加目標運行時的運行時標識符在的csproj(list of supported rid):

<PropertyGroup> 
    <RuntimeIdentifiers>win10-x64;ubuntu.16.10-x64</RuntimeIdentifiers> 
</PropertyGroup> 

上述步驟不再需要開始與.NET核心2.0

然後,設置所需的運行時,當你發佈你的應用程序:

dotnet publish -c Release -r win10-x64 
dotnet publish -c Release -r ubuntu.16.10-x64 
+1

有沒有辦法在「Visual Studio for Mac」中執行此操作?或者這隻能通過CLI完成? – JedatKinports

+5

我認爲這隻能通過CLI完成。順便說一句,從.net core 2開始,你不需要在csproj中設置'RuntimeIdentifier'。 – meziantou

+1

謝謝!看起來像沒有RuntimeIdentifiers它工作。很好,所以我必須在shell腳本中只輸入一次。 :)他們應該是這樣的可能:'DOTNET發佈-c發佈-r win10-64,ubuntu.16.10-x64' – JedatKinports

相關問題