Try .NET Core

.NET Coreを動かした、試した記録を書き残します。

.NET Core ver1.0.1プロジェクトを、ver1.1.0に上げるには?

現在、Visual Studio 2015 Update3 で作られる ASP.NET Core テンプレートプロジェクトの.NET Coreバージョンは 1.0.1 です。

これまでで linux / macともに .NET Core ver1.0.1 / 1.1.0 の二つをインストールしましたので、プロジェクトのバージョンを上げてみます。

.NET Coreのバージョン確認

ASP.NET Coreプロジェクトの.NET Coreバージョンは、project.jsonに書かれています。
テンプレート状態はこちら。

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.0.1",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.0.0",
    "Microsoft.AspNetCore.Mvc": "1.0.1",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.0.0-preview2-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.0.1",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.0.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.0.1",
    "Microsoft.AspNetCore.StaticFiles": "1.0.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.0.0",
    "Microsoft.Extensions.Configuration.Json": "1.0.0",
    "Microsoft.Extensions.Logging": "1.0.0",
    "Microsoft.Extensions.Logging.Console": "1.0.0",
    "Microsoft.Extensions.Logging.Debug": "1.0.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.0.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0"
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.0.0-preview2-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.0.0-preview2-final"
  },

  "frameworks": {
    "netcoreapp1.0": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

また、プロジェクトをビルドした際に、バージョン表記が出力されます。

[root@centos7 WebApplication1]# dotnet build
Project WebApplication1 (.NETCoreApp,Version=v1.0) will be compiled because expected outputs are missing
Compiling WebApplication1 for .NETCoreApp,Version=v1.0    <--ココ

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:02.5954545


バージョンを書き換える

まずはframeworksセクションから。
netcoreapp1.0->netcoreapp1.1に書き換えます。
f:id:try_dot_net_core:20161207113209j:plain

書き換えてから保存すると、その都度バッケージの復元処理が走ります。
f:id:try_dot_net_core:20161207113306j:plain

書き換えたあと、ビルドが通らなくなることがあります。
複数項目を一括で書き換えたあとにビルドが通らなくなった場合、どの項目が原因なのかが分からなくなるため、書き換える都度ビルドします。
f:id:try_dot_net_core:20161207120537j:plain

次にdependenciesセクション。
依存dllのバージョンですね。
Visual Studio 2015 Update3では、バージョン表記を一旦消してからCtrl + SpaceするとIntelliSenceが候補を挙げてくれます。
f:id:try_dot_net_core:20161207112439j:plain



このようにして書き換えた結果が、下記になります。

{
  "dependencies": {
    "Microsoft.NETCore.App": {
      "version": "1.1.0",
      "type": "platform"
    },
    "Microsoft.AspNetCore.Diagnostics": "1.1.0",
    "Microsoft.AspNetCore.Mvc": "1.1.0",
    "Microsoft.AspNetCore.Razor.Tools": {
      "version": "1.1.0-preview4-final",
      "type": "build"
    },
    "Microsoft.AspNetCore.Routing": "1.1.0",
    "Microsoft.AspNetCore.Server.IISIntegration": "1.1.0",
    "Microsoft.AspNetCore.Server.Kestrel": "1.1.0",
    "Microsoft.AspNetCore.StaticFiles": "1.1.0",
    "Microsoft.Extensions.Configuration.EnvironmentVariables": "1.1.0",
    "Microsoft.Extensions.Configuration.Json": "1.1.0",
    "Microsoft.Extensions.Logging": "1.1.0",
    "Microsoft.Extensions.Logging.Console": "1.1.0",
    "Microsoft.Extensions.Logging.Debug": "1.1.0",
    "Microsoft.Extensions.Options.ConfigurationExtensions": "1.1.0",
    "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.1.0"
  },

  "tools": {
    "BundlerMinifier.Core": "2.0.238",
    "Microsoft.AspNetCore.Razor.Tools": "1.1.0-preview4-final",
    "Microsoft.AspNetCore.Server.IISIntegration.Tools": "1.1.0-preview4-final"
  },

  "frameworks": {
    "netcoreapp1.1": {
      "imports": [
        "dotnet5.6",
        "portable-net45+win8"
      ]
    }
  },

  "buildOptions": {
    "emitEntryPoint": true,
    "preserveCompilationContext": true
  },

  "runtimeOptions": {
    "configProperties": {
      "System.GC.Server": true
    }
  },

  "publishOptions": {
    "include": [
      "wwwroot",
      "**/*.cshtml",
      "appsettings.json",
      "web.config"
    ]
  },

  "scripts": {
    "prepublish": [ "bower install", "dotnet bundle" ],
    "postpublish": [ "dotnet publish-iis --publish-folder %publish:OutputPath% --framework %publish:FullTargetFramework%" ]
  }
}

差分はこんな感じ。
f:id:try_dot_net_core:20161207115453j:plain

ビルド時のバージョン表記も、変わってますね。

[root@centos7 WebApplication1]# dotnet build
Project WebApplication1 (.NETCoreApp,Version=v1.1) will be compiled because expected outputs are missing
Compiling WebApplication1 for .NETCoreApp,Version=v1.1

Compilation succeeded.
    0 Warning(s)
    0 Error(s)

Time elapsed 00:00:12.9917026



今回分のソースコードはこちら。
github.com