ASP.NET Coreアプリケーションをビルドして起動してみよう
いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは? 第2回
本稿では、WindowsだけではなくMacやLinuxといったマルチプラットフォームで動作するASP.NET Core 1.0について紹介します。前編では、ASP.NET Coreの概要、セットアップ方法、project.jsonファイルについて紹介しました。中編にあたる本稿では、依存ファイルの解決方法、新しいツール、実行時の挙動等について紹介します。
それでは、ASP.NET Coreについてご紹介していきます。前編の続きとなりますが、ASP.NET Coreプロジェクトを最初に開いた場合、出力ウィンドウには、以下のメッセージが表示されています。
【前編で紹介済:ビルド/実行方法: 「dotnet.exe restore」コマンド】 C:\Program Files\dotnet\dotnet.exe restore "C:\CodeZine\.vs\nestore.dg" -s "C:\Program Files (x86)\Microsoft SDKs\NuGetPackages" 【前編で紹介済:プロジェクトファイル: project.jsonの読み込み】 Restoring packages for C:\CodeZine\AspNetCoreSample\project.json... 【(1)依存解決: 必要なパッケージをNuGetで解決】 Installing Newtonsoft.Json 9.0.1. 【(4)JavaScript/CSSのバンドル・ミニファイ】 Restoring packages for tool 'BundlerMinifier.Core' 【(5)Razorツール】 Restoring packages for tool 'Microsoft.AspNetCore.Razor.Tools' 【(6)ASP.NET Coreと連携するIISモジュール】 Restoring packages for tool 'Microsoft.AspNetCore.Server.IISIntegration.Tools' 【(2)プロジェクトファイル: project.lock.jsonファイル出力】 Writing lock file to disk. Path: C:\CodeZine\AspNetCoreSample\project.lock.json 【(3)プロジェクトファイル: 「*.xproj」プロジェクトファイル】 C:\CodeZine\AspNetCoreSample\AspNetCoreSample.xproj
前編に引き続き、このメッセージの内容に沿って、ASP.NET Coreにおける大きな変更点について紹介していきます。
(1)必要なパッケージ/アセンブリをNuGetで解決
「dotnet restore」コマンドの実行結果として、出力ログに「Installing Newtonsoft.Json...」という外部パッケージを取得するメッセージに注目しましょう。この部分では「project.json」の内容に従い、アセンブリの依存関係を解析し、そのファイルがローカルPCに存在しているかを確認しています。
このパッケージの解決順はVisual Studioの[オプション]−[NuGetパッケージマネージャ]−[パッケージソース]ウィンドウから、設定を確認することができます。
この場合、以下の順序でパッケージの取得が実施されるため、ローカルPCに存在しない場合のみ、NuGetリポジトリからインターネット越しに取得されます。
- 「C:\Program Files (x86)\Microsoft SDKs\NuGetPackages」…ローカルPCのオフラインフォルダ
- 「https://api.nuget.org/v3/index.json」…インターネット上のNuGet.orgリポジトリ
以前のASP.NETアプリケーションでは、取得した参照パッケージを各プロジェクトのフォルダの中に格納していましたが、ASP.NET Core(.NET Core)の場合、取得したアセンブリは、「C:\Users\<ユーザー名>\.nuget\packages\」というユーザー固有の共有フォルダに格納されます。
(2)依存情報をキャッシュする「project.lock.json」ファイル
「dotnet restore」コマンドが実行されると、結果として「project.lock.json」というファイルが生成されます。このファイルには、project.jsonの参照設定やNugetの設定に応じた依存関係が出力されます。このファイルが無いとビルドを行うことができません(そのため、Visual Studioでは削除した瞬間に復元されます)。
(3)プロジェクトファイル「*.xproj」
ASP.NET Coreでは、従来の「*.csproj(C#)」や「*.vbproj(VB)」とは異なり、新しいプロジェクトファイル形式「*.xproj」が利用されています。アセンブリや使用ファイルの設定は「project.json」に記載されているため、「xprojファイル」には、主にVisual Studioに関する設定が記載されます。
この記事は参考になりましたか?
- いよいよ登場「ASP.NET Core 1.0」 マルチプラットフォームな.NETとは?連載記事一覧
-
- ASP.NET Coreの雛形コードを見てみよう
- ASP.NET Coreアプリケーションをビルドして起動してみよう
- ASP.NET Coreの概要を理解してセットアップしよう
- この記事の著者
-
WINGSプロジェクト 青木 淳夫(アオキ アツオ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
