Dot-Net
在 .NET Core RC2 中建構 .exe 文件
每次我使用新的 .NET Core RC2 模板建構項目時,我都沒有提供可執行的 . EXE文件。如果我按 F5 來調試我的控制台應用程序,它會通過
C:\Program Files\dotnet\dotnet.exe應用。如果我使用
dotnet run文件夾中的命令,它也執行良好。但是我認為沒有 .NET Core CLI 工具就無法執行該應用程序。
我的內容
bin\Debug\netcoreapp1.0\文件夾如下所示:
如您所見,沒有 . EXE文件可用。只是dll。
我忽略了什麼嗎?還是我的 project.json 文件有問題?
{ "version": "1.0.0-*", "buildOptions": { "emitEntryPoint": true }, "dependencies": { "Microsoft.NETCore.App": { "type": "platform", "version": "1.0.0-rc2-3002702" } }, "frameworks": { "netcoreapp1.0": { "imports": "dnxcore50" } } }謝謝!
.NET Core 中實際上有 2 個應用模型:
- 攜帶式應用程序:受到“DNX 控制台應用程序”的極大啟發,這些應用程序不生成
.exe文件,而是由 .NET Core 共享執行時執行(其版本由Microsoft.NETCore.App包定義,這要歸功於其特殊type: platform屬性)。必須在機器上安裝相應的 .NET Core 執行時才能使用攜帶式應用程序。如果找不到準確的版本,執行時會拋出異常dotnet run。- 獨立應用程序
.exe:獨立應用程序在生成文件時與舊的 .NET 控制台應用程序非常相似。.NET Core 執行時不必安裝在機器上,因為它直接嵌入到應用程序本身中。您目前正在使用第一個模型。要使用獨立模型,您需要調整
project.json:
- 添加一個
runtimes部分以列出您的應用程序將針對的環境(例如win7-x64或ubuntu.14.04-x64)。您可以在此處找到完整列表。- 移除
Microsoft.NETCore.App依賴。你可以用這個包代替它:"NETStandard.Library": "1.5.0-rc2-24027".這是一個獨立應用程序的範例:
{ "buildOptions": { "emitEntryPoint": true, "preserveCompilationContext": true, "warningsAsErrors": true }, "dependencies": { "Microsoft.Extensions.Configuration.Binder": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.CommandLine": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0-rc2-final", "Microsoft.Extensions.Configuration.Json": "1.0.0-rc2-final", "Microsoft.Extensions.DependencyInjection": "1.0.0-rc2-final", "Microsoft.Extensions.Logging": "1.0.0-rc2-final", "Microsoft.Extensions.Logging.Console": "1.0.0-rc2-final", "NETStandard.Library": "1.5.0-rc2-24027" }, "frameworks": { "net451": { }, "netcoreapp1.0": { "dependencies": { "System.Net.Ping": "4.0.0-rc2-24027" }, "imports": [ "dnxcore50", "dotnet5.6", "portable-net451+win8" ] } }, "runtimes": { "win7-x64": { } } }
