archlinux上のVSCodeで.NET 5.0のバイナリをビルドして実行する方法

この記事は公開から3年以上経過しています。

過去のエントリ「C#と機械学習でコロナ感染の今後を予測してみる」で紹介したソースコードをarchlinux上のVSCodeと.NET 5.0 SDK環境で実行したところエラーで実行できなかったため、その対策方法についてのメモ。

問題

.net core3.1用のC#プロジェクトをarchlinux上の.NET 5.0環境でVSCodeから実行すると、以下のようなエラーが発生する。

it was not possible to find any compatible framework version
The framework ‘Microsoft.NETCore.App’, version ‘3.1.0’ was not found.

  • The following frameworks were found:
    5.0.5 at [/usr/share/dotnet/shared/Microsoft.NETCore.App]

You can resolve the problem by installing the specified framework and/or SDK.

The specified framework can be found at:

対応

.NET 5.0用にプロジェクトのビルド設定を変更する。

  1. *.csprojTargetFrameworknet5.0に変更。

    /Covid19InJapan/Covid19InJapan/Covid19InJapan.csproj

    <Project Sdk="Microsoft.NET.Sdk">
    
      <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net5.0</TargetFramework>
      </PropertyGroup>
    
      <ItemGroup>
        <PackageReference Include="CsvHelper" Version="15.0.5" />
        <PackageReference Include="MathNet.Numerics" Version="4.12.0" />
        <PackageReference Include="Microsoft.ML" Version="1.5.2" />
        <PackageReference Include="Microsoft.ML.TimeSeries" Version="1.5.2" />
        <PackageReference Include="XPlot.Plotly" Version="3.0.0" />
      </ItemGroup>
    
    </Project>
  2. launch.jsonのプログラム配置パスをnet5.0に変更。

/Covid19InJapan/.vscode/launch.json

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": ".NET Core Launch (console)",
            "type": "coreclr",
            "request": "launch",
            "preLaunchTask": "build",
            "program": "${workspaceFolder}/Covid19InJapan/bin/Debug/net5.0/Covid19InJapan.dll",
            "args": [],
            "cwd": "${workspaceFolder}/Covid19InJapan",
            "console": "internalConsole",
            "stopAtEntry": false
        },
        {
            "name": ".NET Core Attach",
            "type": "coreclr",
            "request": "attach",
            "processId": "${command:pickProcess}"
        }
    ]
}

ちなみにC#と機械学習でコロナ感染の今後を予測してみるを用いて、2021.1.8から発令された緊急時短宣言が栃木で解除された2021.2.8以降2021.4.17現在までのデータによる予測結果は以下のとおりです。

<コロナ日毎感染率の予測結果>
file

<コロナ日毎死者数予測結果>
file
感染率データと死者数のデータを連携していないため単独で見ると短期的に上昇後に下降していますが、感染率が増加すれば死者数も増加するのではないかと思います。

参考ウェブサイトなど

以上です。

シェアする

  • このエントリーをはてなブックマークに追加

フォローする