C#で複数のアセンブリを束ねる方法

概要 .NET Framework 環境下にて、複数のクラスライブラリを1つのクラスライブラリへ束ねる方法を紹介する。 動機 PluginOrganizer では、外部のライブラリを依存させているが、実装当時の時間的制約によりライブラリのソースコードを本体に取り込んでビルドする方法を採っている。 実際には外部のライブラリを依存させつつ本体に1つに束ねる方法があるので、どのような方法が有効であるのか考えることとした。 手段 ILMerge https://github.com/dotnet/ILMerge プロジェクト中で参照している CIL の複数のアセンブリを、恐らく「ビルド後イベント」で 1つ のアセンブリに統合する。 ILMerge is a utility that merges multiple .NET assemblies into a single assembly. It is freely available for use and is available as a NuGet package. 所感 前に試してうまくいかなかった。 WPF アプリケーションではうまくいかないようだ。( WPF を使うわけではないんだけど。) アセンブリを埋め込みリソースにする WPFアプリケーションをEXEひとつにまとめる - secretbase.log@cointossさん Merging dlls into a single .exe with wpf - stackoverflow アセンブリを「埋め込みリソース」としてまとめたいアセンブリに埋め込んでしまい、解決は AppDomain.CurrentDomain.AssemblyResolve イベントで動的に行う。 所感 試したらうまくいった。 Bve 5 / 6 系で ....

April 12, 2024 · 1 min · Rock_On

macOSは垂直同期を待たない?

概要 macOS 上の OpenGL を使用しているアプリケーションのフレームレートが、なぜかモニタのリフレッシュレート以上に出ている。 ※業務で macOS のアプリケーションを確認しているときに気がついた。 問題の認識 GLFW の Issue Swap interval ignored on macOS 13 #2249 他にも苦情言ってる人達 examples/windowsize: FPS is too high (about 120) on macOS w/ OpenGL #2472 [bug] [macOS] verticalSync problem since macOS13 (GLFW-inherited issue) #7760 Apple 公式フォーラムで怒り狂う人達 macOS Ventura (13.1) Vsync is broken and scaling is badly designed ※私も頭にきてる💢 直す方法あるらしい。 CVDisplayLink を使うんだと。 macOS: Use CVDisplayLink for vsync #2277

April 4, 2024 · 1 min · Rock_On