rksoftware

Visual Studio とか C# とかが好きです

.NET

自作の dotnet tool をプライベート配布する

やったらできました。 作った dotnet tool をプライベートな場所に置いてその場所を、NuGet のパッケージソースとして追加するだけです。 あとは普通に dotnet tool install <パッケージ名> です。 dotnet tool の作り方 パッケージソース追加の仕方 簡単で…

NuGet のパッケージソースを追加する

NuGet のパッケージソースを追加する方法です。 パッケージソースとしてプライベートなパッケージ配置場所を設定することでプライベートな配布ができます。 ■ Visual Studio で追加する おそらく一番一般的に知られた方法です。 Visual Studio の [ NugGet …

.NET で DI する

.NET のコンソールアプリで DI する最低限の要素をメモします。 詳しくはこちら ■ コード やはりコードがわかりやすいと思うので、まずコードを。 using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using IHost host =…

C# で Moq でモックを使ったテストをする

今回は C# で Moq でモックを使ったテストをする最低限の要素をメモします。 ■ テストプロジェクトの作成 コマンドで作成できます。 今回は NUnit で進めていこうと思うので、NUnit プロジェクトを作成します。プロジェクト名は SampleTestProject としてみ…

画像のサイズを変更したいだけなら part2

以前にピクセル編集の API とピクセル編集が遅いという記事を書きました。 画像のサイズを変更したいだけならもっと早いやり方の記事を書きました。 System.Drawing.Graphics を使った方がもう少し早いかもしれません。 単純に画像のサイズ (縮小・拡大) を…

画像のサイズを変更したいだけなら

以前にピクセル編集の API とピクセル編集が遅いという記事を書きました。 単純に画像のサイズ (縮小・拡大) を変更したいというだけであれば、もっと早くて簡単な次の方法で良かったです。 例えば縦横 25% のサイズにする場合 using System.Drawing.Bitmap …

dotnet tool の作り方

次のサイトに載っています。 簡単に作ってみましょう。 console アプリを作る dotnet tool はコンソールアプリなのでまずは普通にコンソールアプリを作っていきます。 .NET アプリはコマンドでプロジェクトを作れるのでコマンドで作っていきます。ここではア…

System.Drawing.Common は今後使わないようにしたい話

.NET 6 で画像を加工するコードを書いています。 これまで、.NET でも System.Drawin.Bitmap クラス、System.Drawin.Graphics クラスを使ってきました。 System.Drwing.Common NuGet パッケージをインストールすれば使えましたし。 Linux でも libgdiplus を…

【オンライン】Visual Studio 2022 Launch 記念 C# Tokyo イベント で話をしてきました。

前日開催したの 【オンライン】Visual Studio 2022 Launch 記念 C# Tokyo イベント で話をしてきました。 ■ 話したこと 話したのは 3 セッションで次の話題です。 C# 10 のおすすめ新機能 C# 10 の新機能について一通り眺めてみました。 C#10 from m ishizak…

Visual Studio 2022 で MAUI が動かない (Android 解決)

Visual Studio 2022 をインストールして、MAUI プロジェクトを作って動かしてみようとしたら、動きませんでした。 解決 Visual Studio 2022 をインストールするとともに、maui-check をアップデート。 maui-check で開発環境をアップデート。 これで MAUI プ…

dotnet tool を更新する

dotnet tool を更新する方法です。 docs.microsoft.com dotnet tool update < パッケージ ID > 実例 maui-check のアップデートをかけた例です。 > dotnet tool list -g パッケージ ID バージョン コマンド -----------------------------------------------…

dotnet tool を検索する

NuGet ある dotnet tool を検索する方法です。 docs.microsoft.com dotnet tool search < 検索ワード > 例 執筆時点で maui で検索するとこんな感じになりました。 バージョンが出ているのがうれしいです。 > dotnet tool search maui パッケージ ID 最新バ…

インストールされている dotnet tool を確認する

コマンドで簡単に確認できますが、少し注意点があります。 docs.microsoft.com グローバルツールをリストする場合 dotnet tool list -g ローカルツールをリストする場合 dotnet tool list または dotnet tool list --local 両方同時にはリストできないので注…

MAUI プロジェクトが動かない

Visual Studio 2022 が出ましたね! 早速 2022 で MAUI のプロジェクトを作って動かそうとしたら動かない... 動かないというか、ビルドも失敗するし、さらに言えばプロジェクトのアンロード後のリロードで失敗する状況です。 数日前のブログ記事では元気に案…

Maui の WinUI がデバッグできた

以前に Maui の WinUI がデバッグできない記事を書きました。 現在、できるようになっていたオデ書き残しておきます。 ■ 環境 Visual Studio 2022 Preview 4.1 6.0.100-rc.1.21463.6 ■ ワークロードの更新 ※必要かは分かりませんが dotnet workload update ■…

ワークロードを更新する

意外とやらないので。というかこれまでやったことない気がします。 dotnet workload update ※参考

global using

これまで暗黙的な global using 関連の記事を何個か書いてきましたが、実は global using は書いていませんでした。 ■ global using どこかの1ファイルで using だけですべてのファイルで using したことになる機能です。 ■ 前提条件 今回のコードを試すに…

暗黙的な global using ディレクティブをもっと細かく制御する

先日暗黙的な global using ディレクティブについて書きました。 実は暗黙的な global using ディレクティブは .csproj ファイルでもっと細かく制御できます。 ■ Import Remove / Import Include 上に貼ったリンクの通りですが、例えば次のような要素を .csp…

暗黙的な global using ディレクティブによる破壊的変更の回避

先日暗黙的な global using ディレクティブによる破壊的変更について書きました。 記事の中で実際に .NET 5 で通っていたコードが .NET 6 でエラーになるパターンを挙げて確認しました。 ■ DisableImplicitNamespaceImports プロパティ このエラーは、 .cspr…

暗黙的な global using ディレクティブによる破壊的変更

暗黙的な global using ディレクティブについては次を参照してください、 ■ System 名前空間に注目して検証 次のコードは .NET 5 ではまったく問題なくビルドできるコードです。 3 行目の Console は Test 名前空間のクラスとして認識されています。 using T…

テンプレートの C# コードが以前のバージョンでサポートされない

これはあまり問題にならないと思いますが、言われてみれば、入門者とかは結構はまりそうだなと注目した記事です。 簡単に言うと、.NET 6 で作ったプロジェクトはテンプレートの段階で .NET 6 の機能を使っているので、TargetFramework を落とすとエラーにな…

暗黙的な名前空間機能

先日、.NET 6 のコードでは、これまで書く必要があった using ディレクティブが不要になっていると書きました。 これはこういうことだったらしいです。 簡単に抜粋すると 次の using は書かなくていい、ということになります。 System System.Collections.Ge…

とある機能が本当に新機能か確認する

初めて見る機能が、最新環境での新機能か確認したいこと、とてもよくありますよね? そんな時私がやってしまうのがこれ この記事のような方法で TargetFramework を一つ前のバージョンに設定してみます。 実践 .NET 6 ではエラーが出ていないコードが .NET 5…

using 不要

詳細はこれから調べたいと思います。 これまでの C# 次のコードはエラーになります。実際にエラーになっていることがわかるよう画像で貼っておきます。 ※一部抜粋ではなく全コードです。 using System; using System.Linq; がないのでエラーになっています。…

ファイルを同時に読んで書いてしてみる

概要 冒頭のリンクの中の Reading & Writing Files という項目が気になったので動かしてみました。 新しいファイル読み書きの API ですね。一つのファイルを並行で 3 処理で読み書きしでみました。 以前に読んでみただけの記事はこちら 読むために必要なもの…

ファイルを同時に読んでみる

概要 冒頭のリンクの中の Reading & Writing Files という項目が気になったので動かしてみました。 新しいファイル読み書きの API ですね。 試しに一つのファイルを並行で 2 処理で読んでみています。 コード コード using SafeFileHandle handle = File.Ope…

dotnet コマンドで使われる dotnet のバージョンを指定する

概要 ディレクトリに global.json ファイルを作って設定を書いておくとそのバージョンが使われます。 作り方 コマンドで簡単に作れます。 最後で指定しているバージョンになります。 dotnet new globaljson --sdk-version 5.0.301 注意 指定するバージョンを…

Maui の WinUI がデバッグできない

この下の方のプロジェクトがデバッグ実行できなくて試行錯誤しています。 ネットの海をさまようと以前のバージョンの際に書かれた記事では皆さんデバッグ実行できていたようなので。 ちなみにデバッグはできなくても、Deploy は可能なので Deploy したものを…

MAUI の Preview 7 が出たので環境を作って実行してみた

アナウンスがこちら。 ■ 今回私がやったこと タイトル詐欺で、実は Preview 7 とか全然関係なく、単純に私が時間がとれたので MAUI を動かしてみただけの記事です。 ■ 準備 Visual Studio 2022 の Preview 3 を用意します。 .NET 6 の Preview 7を用意します…

DataTable で XML を使う

.NET の System.Data.DataTable。みんな大好きですよね? 実はあまり知られていない事実ですが、DataTable は XML を扱えます。 using System.Data; // 中身を XML ファイルに出力 { var dt = new DataTable(); dt.TableName = "saitama"; dt.Columns.Add("n…