Linuxで、.NetframeWork を使う

Windows専用と思ったら、Linuxでも利用できる。

Pleasanter(ローコード開発ツール)というのも、そうらしい。 参考

手順1 – Microsoft PPAを有効にする

$ wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb

$ sudo dpkg -i packages-microsoft-prod.deb

ステップ2 – .NET Core SDKのインストール

$ sudo apt update

$ sudo apt install apt-transport-https

$ sudo apt install dotnet-sdk-3.1

以前のバージョンも入れるなら、

$ sudo apt install dotnet-sdk-2.1

ステップ3 – .NET Coreランタイムをインストールする

$ sudo apt update

$ sudo apt install apt-transport-https

$ sudo apt install dotnet-runtime-3.1

ステップ4 –.NET Coreバージョンを確認する

$ dotnet –version

3.1.401

$ dotnet –list-sdks

2.1.818 [/usr/share/dotnet/sdk]

3.1.417 [/usr/share/dotnet/sdk]

$ dotnet –list-runtimes

Microsoft.AspNetCore.All 2.1.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.All]

Microsoft.AspNetCore.App 2.1.30 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]

Microsoft.AspNetCore.App 3.1.23 [/usr/share/dotnet/shared/Microsoft.AspNetCore.App]

Microsoft.NETCore.App 2.1.30 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

Microsoft.NETCore.App 3.1.23 [/usr/share/dotnet/shared/Microsoft.NETCore.App]

ステップ5ーサンプルソフトで評価する

$ dotnet new console -n my-console-project

Getting ready…

The template “Console Application” was created successfully.

Processing post-creation actions…

Running ‘dotnet restore’ on my-console-project/my-console-project.csproj…

復元対象のプロジェクトを決定しています…

/home/u000326/my-console-project/my-console-project.csproj を復元しました (152 ms)。

Restore succeeded.

$ cd my-console-project/

$ ls -l

合計 12

-rw-rw-r– 1 u000326 u000326  200  3月  9 14:23 Program.cs

-rw-rw-r– 1 u000326 u000326  233  3月  9 14:23 my-console-project.csproj

drwxrwxr-x 2 u000326 u000326 4096  3月  9 14:23 obj

$ cat my-console-project.csproj 

<Project Sdk="Microsoft.NET.Sdk">
  <PropertyGroup>
    <OutputType>Exe</OutputType>
    <TargetFramework>netcoreapp3.1</TargetFramework>
    <RootNamespace>my_console_project</RootNamespace>
  </PropertyGroup>
</Project>

$ cat Program.cs

using System;

namespace my_console_project
{
    class Program
    {
        static void Main(string[] args)
        {
            Console.WriteLine("Hello World!");
        }
    }
}

(実行する)

$ dotnet run

Hello World!

(ビルドする)

$ dotnet build

.NET 向け Microsoft (R) Build Engine バージョン 16.7.2+b60ddb6f4
Copyright (C) Microsoft Corporation.All rights reserved.
  復元対象のプロジェクトを決定しています...
  復元対象のすべてのプロジェクトは最新です。
  my-console-project -> /home/u000326/my-console-project/bin/Debug/netcoreapp3.1/my-console-project.dll
ビルドに成功しました。
    0 個の警告
    0 エラー
経過時間 00:00:00.97

$ ls

Program.cs  bin  my-console-project.csproj  obj

$ ls bin/Debug/netcoreapp3.1/my-console-project

my-console-project            my-console-project.dll  my-console-project.runtimeconfig.dev.json
my-console-project.deps.json  my-console-project.pdb  my-console-project.runtimeconfig.json

$ bin/Debug/netcoreapp3.1/my-console-project

Hello World!

ステップ6- .NET Framework互換フレームワーク(MONO)を使って評価する

参考

MONOのインストール

#事前準備

$ apt list –installed | grep dirmngr

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.
dirmngr/focal-updates,now 2.2.19-3ubuntu2.1 amd64 [インストール済み、自動]

#以下のコマンドでキーを更新します

$ sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –recv-keys 3FA7E0328081BFF6A14DA29AA6A19B38D3D831EF

#以下のコマンドで、apt-getリポジトリにMonoのリポジトリを追加します

$ echo “deb http://download.mono-project.com/repo/debian wheezy main” | sudo tee /etc/apt/sources.list.d/mono-xamarin.list

#リポジトリのリストを更新します

$ sudo apt-get update  <- エラー時の対処参照

#インストール

sudo -E apt-get install mono-complete

#MONO Develop インストール ※ C#アプリを動作させるだけであれば不要

$ sudo apt update  <- error

$ sudo apt install mono-devel

エラー時の対処(ubuntuで認証プロキシ配下からapt-keyを使うとき)

$ sudo apt-key adv –keyserver hkp://keyserver.ubuntu.com:80 –keyserver-option http-proxy=172.16.1.58:8080 –recv-keys A6A19B38D3D831EF

Executing: /tmp/apt-key-gpghome.fPhXUoDWAM/gpg.1.sh –keyserver hkp://keyserver.ubuntu.com:80 –keyserver-option http-proxy=172.16.1.58:8080 –recv-keys A6A19B38D3D831EF

gpg: 鍵A6A19B38D3D831EF: 公開鍵”Xamarin Public Jenkins (auto-signing) <releng@xamarin.com>”をインポートしました

gpg: 処理数の合計: 1

gpg:               インポート: 1

 

 

タイトルとURLをコピーしました