午後わてんのブログ

ベランダ菜園とWindows用アプリ作成(WPFとC#)

WPFにもNumericUpDownみたいなのをユーザーコントロールで、その10、不具合修正

ダウンロード先

github.com

ControlLibraryCore20200620_v1.2.3.7z

久しぶりに使おうとして参照に追加したらエラー

エラーメッセージ
追加したプロジェクトとdllでは対象とするプロセッサアーキテクチャが違うから、エラーになるかもしれないよってことかなあ
この状態でも普通に動いたんだけど、毎回表示されるので直したのが今回のもの

直るまでに取った行動

問題のdllのプロジェクトを開いて

構成マネージャーでプラットフォームの変更

構成マネージャー
このx64が余計なのかと思って
AnyCPU
全部AnyCPUに変更した
けど、これでも直らず

ターゲットフレームワークの変更

あんまり関係なさそうだけど、今使っている6.0に合わせた

.NET Core 3.1から、今使っている.NET 6.0へ変更した
結果、余計にエラーが増えたw
エラーが増えました

検索してこちらを参考に
NETSDK1137: Microsoft.NET.Sdk.WindowsDesktop SDK を使用しないでください - .NET CLI | Microsoft Learn
learn.microsoft.com

【NETSDK1137】Microsoft.NET.Sdk.WindowsDesktop SDKを使用する必要はなくなりました。 | イメージングソリューション
imagingsolution.net

プロジェクトファイルの編集
.WindowsDesktopを削除
これで新たに増えたエラーは直った
アーキテクチャ不一致は直らず

プロジェクトファイルのPlatforms項目を削除

これも関係ないかも?

プロジェクトファイル
ここにもx64とかあって怪しい、念のために今のプロジェクトのプロジェクトファイルを見たら、Platformsっていう項目自体がなかったので、バックアップしつつ削除することにした
Platformsを削除したところ
これでも直らず
あとはビルドのクリーンや、リビルドとかも試したけど直らずで最後に試したのが

選択範囲の公開

よくわかってないけど別フォルダに新たにビルドすること?

選択範囲の公開
公開設定?
これで発行したらエラーが出なくなった

実際に別のプロジェクトに追加して使ってみると

0エラー

動かしてみる

動作確認
エラー出ているときも動いていたけどね

感想

プロジェクトファイルとは初めて見たよ
このdll作ったのはVisual Studio2019の頃だったかな?結構昔だからVisual Studioの初期値とか設定が変更になったせいかもねえ
昔は64ビットアプリにしたいときはx64を選択する必要があった気がするけど、今は初期設定のAnyCPUでも64ビットで動く

関連記事

前回のNumericUpDown記事は
gogowaten.hatenablog.com
あれ?1年前?このときは今回のようなエラーは出ていなかったんだけどなあ