STAスレッドを使用したアプリのメモリリークについて

こんにちは、Japan Developer Support Core チームの近澤です。.NET アプリケーションでメモリリークが発生した際に、STA スレッドが関係している場合があります。今回は、STAスレッドの仕組みと、よくあるメモリリークの原因、その対処方法についてご紹介します。 STA スレッドとはSTA(Single Threaded Apartment)スレッドは、COM コンポーネントでスレッドセーフを明示しない実装でも安全に使えるようにするための仕組みです。 STA スレッドが必要な理由STA スレッドは、Windows Forms アプリケーションなど UI アプリケーションでよく使用されています。Windows Forms コントロールの多くは、パフォーマンスや内部で依存しているネイティブ コントロールの互換性の関係から、それ自身はスレッドセーフではありません。また、例...

Read more

アプリケーションエラーを Visual Studio + GitHub Copilot で調査する

こんにちは、Japan Developer Support Core チームの松井です。今回は、Visual Studio 2022 と GitHub Copilot を使用したアプリケーション エラーの調査事例を紹介します。 前提条件本記事の手順を試すには以下の準備が必要です。 Visual Studio 2022 version 17.14 以降のインストール GitHub Copilot のインストール エージェント モードの有効化 シナリオサンプル プログラムを実行すると、コマンドライン引数を与えたときは正常に処理が行われますが、省略したときはログが出力されずアプリケーションがクラッシュします。Application のイベント ログには、ソース: Application Error、イベント ID 1000 のログが記録されていることが確認できます。障害が発生したモジュールと...

Read more

コマンドからの Visual C++ 再頒布パッケージのインストール方法

こんにちは、Japan Developer Support Core チームの上原です。今回は、Visual C++ 再頒布パッケージ(Redistributable) をコマンドでインストールする方法、サイレント インストールについてご案内します。 はじめにVisual C++ ランタイムは多くのアプリケーションで利用されていますが、Windows OS には標準で含まれていません。そのため、アプリケーション利用時に「Visual C++ 再頒布パッケージ」を別途インストールする必要が生じる場合があります。Visual C++ 再頒布可能パッケージは、ダウンロードサイト から入手が可能ですので、エクスプローラーなどから GUI 上でインストールする方法と、コマンドプロンプトなどからコマンドを実行する形でインストールする方法があります。 本記事では、コマンドからのサイレント インストール方...

Read more

.NET Framework の修復方法について

こんにちは、Japan Developer Support Core チームの松井/上原です。今回は .NET Framework の修復方法について解説します。 概要.NET Framework は Windows の OS バージョンによって構成が異なります。そのため、.NET Framework の破損が疑われる状況では、OS バージョンにより修復に必要なツールや手順が異なりますので注意が必要です。 Windows 8 および Windows Server 2012 以降のバージョン Windows 7 SP1 および Windows Server 2008 R2 SP1 以前のバージョン なお、.NET Framework の破損が疑われる一般的なケースとして、.NET Framework アプリケーションが起動できないといったトラブルがあります。このようなトラブルの場合、.N...

Read more

Windows Forms の MDI アプリケーションで ActiveX コントロールを使用すると、マウス クリックで子ウィンドウの切り替えができなくなる

(※ 2019 年 4 月 11 日に JAPAN Platform SDK (Windows SDK) Support Team Blog/Forum に公開した情報の再編集・再掲です。) こんにちは、Platform SDK (Windows SDK) サポート チームです。今回は Windows Forms の MDI アプリケーションで、子ウィンドウがタイトル バーでしか切り替えられなくなる現象をご案内します。 現象Windows Forms で MDI アプリケーションを作成した場合、MDI の子ウィンドウは、タイトル バーやクライアント領域をクリックすることで、前面のウィンドウを切り替えることができます。以下のスクリーンショットでは、ChildForm 1 内のマウス カーソルの位置をクリックしています。 図1 (クライアント領域をクリック) 図2 (前面のウィンドウが切り替わ...

Read more

Azure DevOps Service Connection と Workload Identity Federation について

こんにちは、Japan Developer Support Core チームです🐶 Azure DevOps では、Service Principal の有効期限を気にすることなく、Service Connection を管理できる新機能が追加されました。今回は、この便利な機能、Workload Identity Federation を使用した Service Connection についてご紹介します。 Workload Identity Federation とは Azure DevOps における Service Connection の認証方法に革命をもたらす Workload Identity Federation が、Azure Resource Manager タイプの Service Connection で利用可能になりました。これは、Azure Pipelines...

Read more

Azure DevOps Service Connection の更新について

こんにちは、Japan Developer Support Core チームです🐶今回は、Azure DevOps Service Connection についてのお話です。 Azure DevOps での CI/CD パイプラインは、外部サービスとの連携が不可欠です。Service Connection は、これらの外部サービスへのアクセスポイントとして中心的な役割を果たしており、その期限切れはパイプラインの実行に大きな支障をきたす可能性があります。本記事では、Azure Resource Manager タイプの Service Connection (以降 Service Connection) の期限切れに迅速かつ正確に対処するためのベスト プラクティスをご紹介します。 Service Connection の重要性と期限切れのリスク Azure DevOps のパイプラインは...

Read more

Azure Pipelines エージェントの更新について

こんにちは、Japan Developer Support Core チームです🐶 今日は Azure DevOps における縁の下の力持ちである Azure Pipelines エージェントの更新についてのお話です。 Azure Pipelines エージェントは、Azure Pipelines と連携してビルドやデプロイを行うプログラムであり、Azure DevOps では、数週間おきに新しいバージョンの Agent プログラムをリリースしています。Microsoft-hosted agent は自動更新されるため、常に最新の状態を保っています。一方、Azure Virtual Machine Scale Set agent や Self-hosted agent は既定で自動更新されますが、この設定を変更して自動更新を停止することも可能です。ただし、エージェントは最新バージョンのみ...

Read more

Team Foundation Server / Azure DevOps Server のトラブルシューティング用データ採取について

こんにちは、Japan Developer Support Core チームです🗻いつも Team Foundation Server / Azure DevOps Server をご利用いただき、ありがとうございます。 突然ですが、Azure DevOps にはオンプレミス版とクラウド版の 2 種類の製品があることをご存じでしょうか?・Azure DevOps Services (クラウド版)・Azure DevOps Server または Team Foundation Server (オンプレミス版) 今回の記事ではオンプレミス版である Team Foundation Server / Azure DevOps Server 全般で生じた問題におけるトラブルシューティング用のデータ採取方法についてご紹介していきます。 もし現在クラウド版をご利用の方は、別途トラブルシューティング...

Read more

WUA API で WSUS から取得した更新プログラムを任意のタイミングで適用する

こんにちは、Japan Developer Support Core チームの近澤です。 WSUS から Windows Update を配信する構成は、Windows Update Agent (WUA) API を使用してスクリプトから実行することが可能です。これにより、配信する更新プログラムの検索、選定、ダウンロード、インストールを自動化することができます。 Windows Update エージェント API - Win32 apps | Microsoft Learn さて、組織で更新プログラムを管理する際、検証環境と本番環境を分け、十分に検証を実施した後に、本番環境に同じ更新プログラムを当てたい、という要望がよくあります。WUA API の使用例は、下記ドキュメントなどにありますが、この例では、スクリプトの中で検索、ダウンロード、インストールをひとまとめにして実施しています。その...

Read more