rksoftware

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

2021-01-01から1年間の記事一覧

大文字小文字を区別せずにプロパティ情報を取得する

C#

PropertyInfo を取得する際、大文字小文字を区別して取得したい方は非常にまれだと思います。 大多数の大文字小文字を区別せずに PropertyInfo を取得したい方向けのお話です。ちなみに私も大文字小文字を区別せずに PropertyInfo を取得したい派です。 ■ Bi…

コマンドライン引数を雑に扱う

C#

コンソールアプリ、ちょっとした処理を行う際に雑に作ってしまうのが結構いいのですが、何気にコマンドライン引数の解釈コードが面倒です。 それはもう、あらゆる要素をソースコードに書き込んで毎回ソースコード上の値を書き換えてビルドして使うほどに。 …

dotnet tool の更新確認 dotnet tool を更新しました。

dotnet tool の更新確認 dotnet tool を更新しました。 更新という文字が繰り返しあって混乱しそうですね。 ■ 更新内容 実行結果が、見やすくなりました。 表示がそろうようになって見やすくなりました。 更新があるツールの文字色が赤くなって見やすくなり…

NuGet パッケージのプロパティ (パッケージの情報) を設定する

nuget パッケージには必須のプロパティ情報のほかにも多くの情報が設定できます。 特に Readme やソースコードのリポジトリなどは設定されているとうれしいですね。 設定は .csproj ファイルに書けば OK です。シンプルでわかりやすくていいですね。 ■ 実例 …

dotnet tool の更新確認 dotnet tool 作ってみた

インストール済みの dotnet tool に更新があるかを一括で確認する方法がわからなかったので、dotnet tool を作ってみました。 ちなみに以前には PowerShell で書いてみたりしました。 ■ インストール nuget.org からインストールします。 dotnet tool instal…

インストール済みの dotnet tool に更新があるか確認する

インストール済みの dotnet tool に更新があるかを一括で確認する方法がわからなかったので、PowerShell で書いてみました。 PowerShell 全然わからないので遥かにイイやり方があると思いますが、目的は果たせています。 ■ コマンド > dotnet tool list -g |…

衝撃の事実! 焼き肉の一番おいしい食べ方が判明

皆さん焼き肉はすきですか? 好きな方も好きでない方もいると思います。けれども世間でごちそうとされている事は、皆さんそこそこ異論はないかと思います。 そんな焼き肉ですが、意外と難しい食事です。たれや調味料の種類や配分、焼き加減など食べ方が無限…

dotnet tool 作ってみた (2)

以前に dotnet tool を作ってみました。 rksoftware.hatenablog.com ■ 能力・使い方 (これまで) 1つ目の引数で画像のパスを渡すと、リサイズした新しい画像を2つ目の引数のパスに作成します。リサイズは長辺が 1368 になるように拡大/縮小されます。それだけ…

NuGet パッケージにライセンスファイルを埋め込む

意外と難しかったのでメモ。 Visual Studio の UI で設定する方法が見つけられなかったので。 ■ 前提 いつもこんな感じにリポジトリのトップにライセンスファイルを置いて、src ディレクトリの中にソリューションのディレクトリ、その中にプロジェクトのディ…

dotnet tool 作ってみた

dotnet tool の配布は nuget .org なので、試しに実際に NuGet にあげてみました。計画通り普通にインストールして使えます。 NuGet からインストールできます。 > dotnet tool install --global Rksoftware.ImageResizeConsole ■ 能力・使い方 1つ目の引数…

自作の 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 のプロジェクトを作って動かそうとしたら動かない... 動かないというか、ビルドも失敗するし、さらに言えばプロジェクトのアンロード後のリロードで失敗する状況です。 数日前のブログ記事では元気に案…

Visual Studio のアップデート 16.11.6 がリリースされました。

C#

Visual Studio のアップデート 16.11.6 がリリースされました。 ■ 更新内容 ■ 機能の追加 Android 12 の API のサポートを追加。 問題の解決 VSInstr が終了しないことがある。 C ++ IntelliSense の不具合。 特定の条件下で fsi (fsharp-interactive ( dotn…

AsyncMethodBuilder のオーバーライド

C#

■ C# 10.0 での新機能 ・AsyncMethodBuilder のオーバーライド (AsyncMethodBuilder override) https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/improved-definite-assignment 非同期メソッド (async メソッド) …

明確な代入分析の改善

C#

■ C# 10.0 での新機能 ・明確な代入分析の改善 (Improved definite assignment analysis) https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/improved-definite-assignment 変数に値がセットされているかの分析が機…

汎用属性

C#

■ C# 10.0 での新機能 ・汎用属性 (Generic attributes) https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/generic-attributes 属性クラスでジェネリクスが使える。 [Sample<int>] void Method() {; } class SampleAttr</int>…

強化された #line ディレクティブ

C#

■ C# 10.0 での新機能 ・強化された #line ディレクティブ (Enhanced #line directives) https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/caller-argument-expression #line ディレクティブで Razor などで正しい…

呼び出し元の引数の式

C#

■ C# 10.0 での新機能 ・呼び出し元の引数の式 (Caller argument expression) https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/proposals/csharp-10.0/caller-argument-expression 引数の部分で書かれた式を呼び出し先のメソッドで文字…