-
Notifications
You must be signed in to change notification settings - Fork 0
MS_DotNetCoreDevelopment
- 戻る(.NET Core)
補足: .NET Core でアプリを作るときの
「開発 → ビルド → デバッグ → 配置」の流れを、
Windows で始めて Linux へ持っていくという順序でまとめたページ。
- Visual Studioからプロジェクト・テンプレートを選択、
- ビルド・デバッグ実行するだけ。
-
Visual Studioからビルド可能。
-
自動化する場合、dotnet msbuild を使用。
- 参考
- dotnet msbuild コマンド - .NET Core CLI
https://learn.microsoft.com/ja-jp/dotnet/core/tools/dotnet-msbuild
- dotnet msbuild コマンド - .NET Core CLI
- 参考
補足: CI で使うなら
dotnet build/dotnet publishが標準で、
dotnet msbuildは MSBuild の細かい指定が要るときに使う。
詳細は dotnetコマンド、MSBuild を参照。
- Windows 上で以下のようにデバッグ実行される(F5 実行)。
C:\Users\xxxx>"C:\Program Files\dotnet\dotnet.exe" "...\Visual Studio 2017\Projects\ConsoleApp1\ConsoleApp1\bin\Debug\netcoreapp2.0\ConsoleApp1.dll"
Hello World!
補足(この 1 行が示していること): 実行されているのが
ConsoleApp1.exeではなくdotnet.exeに.dllを渡す形である点が重要。【.NET Framework】 App.exe … OS にインストールされた CLR が動かす 【.NET Core】 dotnet App.dll … 共有ランタイムが動かす(フレームワーク依存) App.exe(発行後) … 自己完結にすればランタイム同梱の exe になるアプリ本体は
.dll、.exeは起動用のホストという構造で、
これがクロスプラットフォーム(同じ.dllを Linux でも動かせる)を
成立させている。詳細は .NET Coreのデプロイ を参照。
Linux 上で動作させるには、Linux にデプロイ。
WSL で開発してみる。(WSL上での.NET Core開発)
Linux へデプロイする前に WSL で実行してみる事も可能。
WSL 上で実行できる(WSL上での.NET Core開発)。
補足(なぜ WSL を挟むのか): Windows で書いたコードが
Linux でそのまま動くとは限らない。よく踏むのは、
差異 具体例 パス区切り "a\b"と書くと Linux で壊れる →Path.Combineを使う大文字小文字 Windows は区別しないが Linux は区別する(ファイル名) 改行コード CRLF / LF 文字コード 既定エンコーディングの違い Windows 固有 API レジストリ、 System.Drawing、WMIWSL なら実機を用意せずにこれらを検出できる、というのが
この Step の意義である。
- 参考
- .NET 4.6.2 and long paths on Windows 10 – Jeremy Kuhne's Blog
https://blogs.msdn.microsoft.com/jeremykuhne/2016/07/30/net-4-6-2-and-long-paths-on-windows-10/
- .NET 4.6.2 and long paths on Windows 10 – Jeremy Kuhne's Blog
補足: Windows の **MAX_PATH(260 文字)**制限の話。
ビルド成果物のパスが深くなると踏むことがある
(obj\Debug\net8.0\...が積み上がるため)。
Windows 10 1607 以降はレジストリまたはグループ ポリシーで
長いパスを有効化でき、.NET 側も対応している。
Linux にはこの制限が無いため、Windows 側だけの問題である。
Visual Studio Code による開発(CSharp for Visual Studio Code)
補足(最新化): VS Code での C# 開発は、
従来の OmniSharp ベースの拡張から
C# Dev Kit(および新しい C# 拡張)に移行している。
ソリューション エクスプローラー、テスト エクスプローラーが加わり、
Visual Studio に近い体験が得られる。
http://www.buildinsider.net/language/dotnetcore
- (1).NET Core とは? 開発環境(SDK と Visual Studio Code)のインストール
http://www.buildinsider.net/language/dotnetcore/01 - (2)レッドハット版 .NET Core とマイクロソフト版 .NET Core の違い
http://www.buildinsider.net/language/dotnetcore/02 - (3).NET Core でプロジェクトを作成して開発してみよう
http://www.buildinsider.net/language/dotnetcore/03 - (4).NET Core でコンソールアプリを配置する
http://www.buildinsider.net/language/dotnetcore/04 - (5).NET Standard なライブラリプロジェクトを作成して参照する
https://www.buildinsider.net/language/dotnetcore/05 - (6).NET Core ライブラリプロジェクトをパッケージングして NuGet サーバーに発行する
https://www.buildinsider.net/language/dotnetcore/06 - (7).NET Core で単体テストを行う
https://www.buildinsider.net/language/dotnetcore/07
※ 前提となる開発環境は、CentOS 7.3, .NET Core SDK, Visual Studio Code であるもよう。
Tags: 移行, .NET開発, .NET Core
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。