私がやっていることはかなり標準的だと思います。リソースで GetManifestResourceStream を呼び出し、.ico ファイルへのパスを指定して、埋め込みリソースからいくつかの画像を作成します。
Bitmap bmp = new Bitmap(Assembly.GetEntryAssembly().GetManifestResourceStream("MeterView.Resources.unlocked.ico"));
次に、ビットマップを使用してフォームに画像を表示します。これは常に Windows 7 および 8 で完全に機能していましたが、XP SP3 ボックスでアプリを実行しようとすると、ストリームをビットマップに変換する行に「無効なパラメーター」が表示されます。Image.FromStream も使用してみましたが、結果は同じでした。
リソースのビルド アクションは、埋め込みリソースに設定されます。この問題を回避する方法を知っている人はいますか? ストリームのリセットも試しましたが、違いはありませんでした。
ご提案いただきありがとうございます。
アイコン ファイルは、Visual Basic で XP 用に作成された、このアプリケーションの元のバージョンのものです。それらはVBで手動で生成されたと思います。このアプリケーションを C# で書き直すために、これらのアイコンをすべて再利用しました。私が問題に遭遇したのはこれが初めてです。