ASP.NET 5 改名為 ASP.NET Core 1 後,下一個 RC 版本 (RC2) 將會改成與 .NET Core 1 的 CLI (dotnet) 合併在一起使用,本文即是使用 dotnet CLI 的 Hello World 初體驗教學。
ASP.NET Core 1 在與 .NET Core 1 合併後,會共用 .NET Core CLI 工具作為專案的編譯與建造之用,這個版本將會在 RC2 開始問世,不過在 RC2 完成前,ASP.NET Core 的開發團隊釋出了一個體驗的版本,放在 ASP.NET Core 的 GitHub,不過我用 Visual Studio Code 加上新的 .NET Core CLI (v1.0.001517),就可以成功編譯 ASP.NET Core 的應用程式了。
本次體驗在 Windows 10 (v10.0.10586) 作業系統下操作。
操作步驟如下:
1. 到 .NET Core CLI 的網站下載最新版的 .NET Core CLI,版本 v1.0.001517,網址為:http://dotnet.github.io/getting-started/ ,下載 dotnet-win-x64.latest.exe,它會啟動 .NET Core CLI 的 Installer 進行安裝。將它安裝完,然後啟動命令提示字元,並試著執行 dotnet,確認它可以執行。
2. 在磁碟中建立一個目錄 (本例為 D:\aspnet-dotnet-cli),然後用 Visual Studio Code 開啟這個目錄,並新增四個檔案,分別是 project.json、Program.cs、Startup.cs 以及 NuGet.config,檔案內容分別是:
// project.json
{
"compilationOptions": {
"emitEntryPoint": true
},
"dependencies" : {
"NETStandard.Library": "1.0.0-*",
"Microsoft.AspNetCore.IISPlatformHandler": "1.0.0-*",
"Microsoft.AspNetCore.HttpOverrides": "1.0.0-*",
"Microsoft.AspNetCore.Server.Kestrel": "1.0.0-*"
},
"frameworks": {
"dnxcore50": { }
}
}
// Startup.cs
using Microsoft.AspNetCore.Builder;
using Microsoft.AspNetCore.Hosting;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.HttpOverrides;
namespace HelloWeb
{
public class Startup
{
public void Configure(IApplicationBuilder app)
{
app.UseIISPlatformHandler();
app.UseForwardedHeaders(new ForwardedHeadersOptions
{
ForwardedHeaders = ForwardedHeaders.All
});
app.Run(context =>
{
return context.Response.WriteAsync("Hello World!");
});
}
}
}
// Program.cs
using System.IO;
using Microsoft.AspNetCore.Hosting;
namespace HelloWeb
{
public class Program
{
public static void Main(string[] args)
{
var host = new WebHostBuilder()
.UseServer("Microsoft.AspNetCore.Server.Kestrel")
.UseApplicationBasePath(Directory.GetCurrentDirectory())
.UseDefaultConfiguration(args)
.UseIISPlatformHandlerUrl()
.UseStartup<Startup>()
.Build();
host.Run();
}
}
}
<!-- NuGet.config -->
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<clear />
<add key="AspNetCI" value="https://www.myget.org/F/aspnetcidev/api/v3/index.json" />
<add key="NuGet.org" value="https://api.nuget.org/v3/index.json" />
<add key="dotnet-core" value="https://www.myget.org/F/dotnet-core/api/v3/index.json" />
<add key="dotnet-cli" value="https://www.myget.org/F/dotnet-cli/api/v3/index.json" />
</packageSources>
</configuration>
尤其是 NuGet.config,如果沒有這個檔案,稍後的還原會出現錯誤。
3. 在命令提示字元中,切換至方才新增的位置 (本例為 D:\aspnet-dotnet-cli),執行 dotnet restore,.NET Core CLI 會開始下載必要的 Framework Packages,這需要幾分鐘時間執行。
4. 執行 dotnet run,啟動程式。
5. 開啟瀏覽器並瀏覽 http://localhost:5000,就可以看到 Hello World 的訊息,表示程式已經成功執行。
你也可以試著把 ASP.NET Core 團隊提供的 CLI samples 內的其他專案依相似方法操作,應該也可以成功執行,或是依照 https://github.com/aspnet/cli-samples/blob/master/README.md 的說明也可以喔。