新しもの好きプログラマの耳より情報ブログ

仕事でもあるプログラミングについて役に立ちそうな情報を発信していこうというブログです。役に立たなそうな情報はfacebookで。

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

保守性(変更の容易さ)を上げる、現実的にすぐ使えそうなテクニック。あるいはオブジェクト指向のエッセンス その1

概要 保守性を上げるためのコーディングの理論は、オブジェクト指向をはじめとして、いくつもあります。しかし、現場では理想とのギャップがありすぎて、「理論としては学んだが、現実に使うものではない」というような扱いを受けがちだと感じます。 0か100…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

WiXSharpのカスタムアクションに、NuGetのライブラリを追加する方法

概要 WiXSharpというインストーラ作成用のライブラリの話です。以前の記事でも少し触れましたが、なかなか癖が強く、すぐにやれそうなことも意外と工夫が必要だったりします。 その中で、「NuGetでライブラリを追加したい」という、よく必要になる上に簡単に…

Windowsインストーラ作成に、WiXSharpという選択肢もありますよ(ただしWiX Toolsetが使える人限定)

概要 Windowsインストーラを作ろうとした場合に、WiX Toolsetという有力な選択肢があります。そのWiX Toolsetをさらに作りやすくするWiXSharpというライブラリがあります。 しかしこのWiXSharpはなかなか癖が強く、前提条件がピタリはまると大きな力を発揮し…

PostgreSQLでSQLをコマンド実行する場合に、1回限りのパスワード認証をする方法

概要 PostgreSQLでプログラム上から単発のSQLを実行したい場合に、ファイルを経由せずに1回限りのパスワードを与える方法の話です。 最初に結論まとめ コマンドプロンプトの/cのセッション内で環境変数を設定し、そのままコマンドも実行します。例えば次のよ…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

WPFのWebView2が実行環境で表示されない場合、exeがあるフォルダに実行ユーザーの書き込み権限が無いのが問題かも

概要 WPFの画面にWebView2を実装。デバッグ実行すると問題ないが、実行環境にインストールすると表示されない・・・? そういう場合、WebView2はexeがあるフォルダへの書き込み権限を要求するという特徴のせいかもしれません。その説明と解決策です。 最初に…

.NET MAUIで普通のデスクトップアプリをビルドするには

概要 .NET MAUIで、普通のデスクトップアプリをビルドする方法の話です。普通というのは、msixインストーラで配布するパッケージではなく、exeとdllを作ってmsiインストーラなどで配布するタイプのアプリです。 先に結論まとめ プロジェクトファイルに<WindowsPackageType>None</WindowsPackageType>を…

テストツールを作るならNUnitConsoleのほうが

最初にまとめ こんな内容の記事です。 ボタンかコマンドがたくさん並んだ一品もののテストアプリを、毎回一から作ってる? それなら、UI部分はNUnitConsoleに任せて、ロジックだけに集中しよう! その使い方を紹介 概要 DLLのようなロジックだけを開発する場…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 ・・…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 前回…

VRもくもく会を今週もやりました&その様子の写真

VRもくもく会を今週も開催しました。これは、「VRでのイベントというのも今後は選択肢に入ってくるのではないか、とにかくやってみて経験値を溜めてみよう」ということでやっています。2~3週間おきの定期開催ということで、もう1年以上続けています。 今日…

C#でのファイルパスの重複排除(大小文字無視)は、Dictionaryなどのコレクションにやらせると便利

概要 Windowsのファイルパスなどで、大文字小文字を無視して文字列比較をしたい場合があります。C#では、単純な比較もできますし、ソートと一致判定を伴うコレクション(HashSet,Dictionaryなど)でもそうした比較を行うことができます。ただし比較方式には…

AzureでWindowsアプリのCI/CD環境を作る:DevDriveを組み合わせてみる

概要 開発者の手元のビルド環境だけではなく、どこでもリリースビルドが再現可能であること。 Warningの作り込みやUTコードのFailを早めに見つけてデグレを防ぐこと。 こうした、CI/CD的な考え方は、Windowsアプリ開発においても大事なところだと思います。…

.NET 8のプロセス間通信には、gRPCのパイプ通信が優秀なようです

概要 Windowsアプリを作成していると、PC内のプロセス同士で通信をしたい場合があります。その実装方法として、.NET 8で公式サポートされたgRPCのパイプ通信が優秀なようです。 それについて次のスライドで、イベントで登壇させてもらいました。 www.docswel…

既存のC++/CLIプロジェクトを、.NET 8 RC2でビルドするために必要なこと

結論 プロジェクト設定の.NETターゲットフレームワークのコンボボックスに、手入力で「net8.0」と書く。コンボボックスの選択肢には出てこない。 愚痴 C#プロジェクトは当然のようにエディタから設定できるのに、C++/CLIプロジェクトはRC2に至ってもこの状況…

指定した構成のVisualStudioをコマンド一発でインストールする方法(WinGet構成ファイル(プレビュー版))

WinGetのプレビュー機能「WinGet構成ファイル」を使うと、VisualStudioの構成ファイルインポートのような少し複雑なセットアップも自動化できる。 MSのサイトに必要な情報は一通り書いてあるが、情報量が多いので「最低限これをやりたい」という時の手順がち…

Air Link(Meta Quest)が繋がらない場合に、意外と見落としているポイント

Quest 2のAir Linkが繋がらない!なぜだ!もうケーブルはいらないんだ! まずは、このあたりを試す。たいていはこれで解決する。 PCとQuestとWiFiルーターを再起動する PCのOculusアプリとビデオカードのドライバ、それとQuestを最新版にアップデートする そ…

GitHub CopilotがIntelliSenseの進化形すぎて手放せなくなりそう

GitHub Copilotを使ってみたら、思った以上に即効性のある便利さだった。次のスライドで、いくつか実例を交えて紹介したので、興味のある人は覗いてみてほしい。 www.docswell.com

C#のTaskを同期メソッドの中でawait風に待つやり方

C#の同期メソッドの中で、Taskの完了を待ちたい。しかし、単にWaitすると例外がAggregateExceptionとなって処理が面倒なので、awaitと同様にそのまま例外を受け取れる待ち方にしたい。 そんな都合のいい方法が・・・あった。ただし、状況によっては要求を満…

WPFからWinUI 3へのView部分の移行チャレンジ その1(ChatGPTによる要約つき)

前回のエントリでは、GenericHostやMVVM等の作りを揃えておけば、Viewを書き換えるだけでWPFからWinUI 3への移行が楽になりそうだという話を書いた。 WPFからWinUI 3やMAUIへの移行を楽にする方法 - 新しもの好きプログラマの耳より情報ブログ ではViewを書…

WPFからWinUI 3やMAUIへの移行を楽にする方法

結論 結論から言うと、次の2つの改善を現行のWPFプロジェクトでやっておけば、いざWinUI 3やMAUIへ移行しようとした場合も楽にできそうだ。 MVVMの構造にして、画面とロジックを分離しておく。 GenericHostを使い、アプリの初期化やインスタンス生成と、ロジ…

.NET Frameworkから.NET 6への移行でやった細かいこと(登壇スライド)

このイベントで、タイトルの内容を喋りました。 【オンライン】.NET 6 移行祭り! C# Tokyo イベント - connpass 喋った内容の情報はありませんが、スライドを公開します。 www.docswell.com 私は調べていませんが、次のようなツールが使えるという情報を頂…

.NET6で、C++/CLIやCOMが混在しているソリューションをpublishする方法

概要 .NET 6で作ったソリューション全体を発行したくなったら、dotnet publishコマンドを使うだけ。シンプルで良い。 しかし、これが通じるのはC#プロジェクトだけで完結している場合。C++/CLIやCOMを参照するプロジェクトは、dotnet publishではエラーが出…

hypervisorlaunchtype=offでHyper-VをOFFできない問題の解決方法

概要 他の仮想化ソフトを使うなどの理由で、一時的にHyper-VをOFFにしたい場合がある。BlueStacksとか。一般的なテクニックとして、bcdeditでhypervisorlaunchtype=offに設定したエントリを作るというのがよく使われているが、これが効かない環境があった。…

PowerShellのパラメータに&(アンパサンド)が入ったURLなどを渡す方法

概要 WebhookのURLに&(アンパサンド)が入っていることがあるが、これをPowerShellのコマンドのパラメータに渡そうとすると、そのままではエラーになる。これの解決方法を調べた。 結論 3つの"(ダブルクォート)でURLを囲めば良い。もしくは、'(シングル…

MySQLをDockerで使う時、Windowsだけで問題が起きた2点の解決方法

概要 apache guacamoleを試しにセットアップしてみたところ、LinuxのDockerでは上手くいったがDocker for Windowsでは2つ引っかかったところがあった。その内容をメモる。 .sqlファイルの文字コード 手順の中で、次のようにguacamoleからsqlファイルを出力し…

git submoduleコマンドに、実行時に認証トークンを与える方法(Azure DevOpsで実験)

解決したい問題 Azure Pipelineのスクリプト内でgit submoduleコマンドを使おうとすると、認証が通らずに失敗する。 submoduleのURL自体にトークンを入れておけば通るが、リポジトリ自体にトークンを入れてしまうと変更時などに困るし、できればパイプライン…