Hatena::ブログ(Diary)

tabizouの日記

2018-06-27

Ubuntu 16.04 LTS で ASP.NET Core MVC のプロジェクトを作成してみる

00:12

Ubuntu 16.04 LTS で ASP.NET Core MVC のプロジェクトを作成してみる

 

VsCode で編集できるのかな?と試そうと思ったけど、まずはプロジェクトの作成から試してみることにする

 

VsCodeで実行する場合

launch.json を作成する

Project.csproj を開いて code runner で起動する

※出力パネルが文字化けする場合 export LANG=ja_JP.UTF-8再起動

※.profile に自分は追加

※ $ dotnet publish -c Debug -r ubuntu.16.04-x64  Project.csproj
  $ dotnet ./bin/Debug/netcoreapp2.1/ubuntu.16.04-x64/publish/samp0001.dll
 (相当を実行 かな?)
Ctrl+Alt+M で終了する

参考にしたのは以下のサイト

dotnet new

Ubuntu 16.04 LTS で ASP.NET Core を試してみる

・プロジェクトを新規作成する

$ dotnet new mvc -au None
テンプレート "ASP.NET Core Web App (Model-View-Controller)" が正常に作成されました。
このテンプレートには Microsoft 以外からのテクノロジが含まれています。詳細については https://aka.ms/aspnetcore-template-3pn-210 をご覧くださ い。

作成後のアクションを処理しています...
'dotnet restore' を /home/tabizou/dev/code/core/samp0001/samp0001.csproj で実行しています...
  /home/tabizou/dev/code/core/samp0001/samp0001.csproj のパッケージを復元しています...
  Microsoft.NETCore.DotNetAppHost 2.1.0 をインストールしています。
  Microsoft.NETCore.DotNetHostResolver 2.1.0 をインストールしています。
  Microsoft.NETCore.DotNetHostPolicy 2.1.0 をインストールしています。
  Microsoft.NETCore.Targets 2.1.0 をインストールしています。
  Microsoft.NETCore.App 2.1.0 をインストールしています。
  MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.props を生成しています。
  MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.targets を生成しています。
  /home/tabizou/dev/code/core/samp0001/samp0001.csproj の復元が 12.47 sec で完了しました。

正常に復元されました。

・作成された csproj の内容を比較する(2.0 と 2.1 の違いはあるんだけど)

$ cat samp0001.csproj
<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>netcoreapp2.1</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.App" />
  </ItemGroup>

</Project>

・vs2017 Community で作成したプロジェクトのファイル

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

  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.8" />
    <PackageReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Design" Version="2.0.3" />
  </ItemGroup>

  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.4" />
  </ItemGroup>

</Project>

・実行イメージを作成してみる

$ dotnet publish -c Release -r ubuntu.16.04-x64  samp0001.csproj
.NET Core 向け Microsoft (R) Build Engine バージョン 15.7.179.6572
Copyright (C) Microsoft Corporation.All rights reserved.

  /home/tabizou/dev/code/core/samp0001/samp0001.csproj のパッケージを復元しています...
  runtime.linux-x64.Microsoft.NETCore.DotNetAppHost 2.1.1 をインストールしています。
  runtime.linux-x64.Microsoft.NETCore.DotNetHostResolver 2.1.1 をインストールしています。
  runtime.linux-x64.Microsoft.NETCore.DotNetHostPolicy 2.1.1 をインストールしています。
  runtime.linux-x64.Microsoft.NETCore.App 2.1.1 をインストールしています。
  MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.props を生成しています。
  MSBuild ファイル /home/tabizou/dev/code/core/samp0001/obj/samp0001.csproj.nuget.g.targets を生成しています。
  /home/tabizou/dev/code/core/samp0001/samp0001.csproj の復元が 44.21 sec で完了しました。
  samp0001 -> /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/samp0001.dll
  samp0001 -> /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/samp0001.Views.dll
  samp0001 -> /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/publish/

・起動してみる

$ dotnet ./bin/Release/netcoreapp2.1/ubuntu.16.04-x64/publish/samp0001.dll
Hosting environment: Production
Content root path: /home/tabizou/dev/code/core/samp0001/bin/Release/netcoreapp2.1/ubuntu.16.04-x64/publish
Now listening on: http://localhost:5000
Now listening on: https://localhost:5001
Application started. Press Ctrl+C to shut down.

https://localhost:5001/ で正しく表示されることを確認