「WindowsBase」の異なるバージョン間で、解決できない競合
昨日の雨、思ったほど降らなかった。
雲の動きを見ていると、なんとも複雑な動きで、こっちにくるのか、離れていくのか、よくわからない動きだった。
朝は、マシだったけれど、時間とともに、いつも通りの暑さ。
以前のバージョンの、Visual Studioのプログラムを、2022で開いて、修正し、コンパイルしようとしたら、
タスク ファクトリ "CodeTaskFactory" をアセンブリ "C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Build.Tasks.vCurrent.dll" から読み込めませんでした。ファイルまたはアセンブリ 'file:///C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Build.Tasks.vCurrent.dll'、またはその依存関係の 1 つが読み込めませんでした。指定されたファイルが見つかりません。
というエラーが出た。
このDLLがない?
こんなの見たことがなかったし、イマイチよくわからないので、ネット検索したら、こういう記事が見つかった。
「(パス)\packages\Baseclass.Contrib.Nuget.Output.2.0.0\build\net40\Baseclass.Contrib.Nuget.Output.targets」ファイル内を
下記のように書き換えるか、「Microsoft.Build.Tasks.Core.dll」をコピーして、「Microsoft.Build.Tasks.v17.0.dll」にリネームするか、というやり方らしい。
<UsingTask TaskName="PackageFilter" TaskFactory="CodeTaskFactory" AssemblyFile="C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\Microsoft.Build.Tasks.Core.dll">
2つ目の、バージョン番号にリネームするのは、うまくいかなかったのだけれど、エラーの表示通りで、バージョン番号ではなく、「Microsoft.Build.Tasks.vCurrent.dll」というファイル名にする必要性があった。
これで、コンパイル出来た。
次の問題は、アイコン。
どうも、2022では、プログラムのアイコンの登録の仕方が変わっているらしい。
まずは、Formの設定の中ICOに、パスを通すこと。
次に、プロジェクトの設定の中で、PNGファイルのパスを通すこと。
以前だったら、こういう感じでOKだったはず。
更に追加して、次のようにする必要性があるらしい。
以前は、こんなのはなかった。
「.vbproj」ファイル内
<PropertyGroup>
<ApplicationIcon>(ファイル名).ico</ApplicationIcon>
</PropertyGroup>
これを設定して、やっと、アイコンが、ちゃんとなった。
次は、ビルドする時の出力先のフォルダ指定。
以前であれば、「Relase」や「Debug」の直下に、EXEが出来ていたけれど、2022からは、「x64」とか「x86」とか、ビット数ごとに出力されるようになった。
厳密に、分けたい場合は、それでいいだろうけれど、以前同様、そういうのを気にせずにビルドしたいなら、パスが深くなって、面倒になるので、以前と同様にしたいと思うだろう。
でも、Visual Studioの設定の中では、そういう変更は出来ないようで、「.vbproj」ファイル内のビルド出力パスの設定を、次のようにしてあげる必要性がある。
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release|x64'">
<OutputPath>(パス)\bin\Release\</OutputPath>
</PropertyGroup>
こうすれば、以前同様の出力となる。
応用すれば、自分の好きな場所に出力することも可能になるね。
最後は、Webview2を使って、簡易ブラウザを作ろうとした時に出たエラー。
今までは、4.7とかでやっていたけれど、出来るだけ、新しいバージョン、NET8とかでやった方がいいだろうと思って、始めたら、これだ。(苦笑)
"WindowsBase" の異なるバージョン間で、解決できない競合が見つかりました。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" と "WindowsBase, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" の間で競合が発生しました。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: プライマリであるため、"WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" が選択されました。"WindowsBase, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" はプライマリではありませんでした。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: "WindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" [C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.28\ref\net8.0\WindowsBase.dll] に依存する参照です。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.28\ref\net8.0\WindowsBase.dll
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: 参照 "C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.28\ref\net8.0\WindowsBase.dll" の原因となったプロジェクト ファイルの項目インクルード。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: C:\Program Files\dotnet\packs\Microsoft.NETCore.App.Ref\8.0.28\ref/net8.0/WindowsBase.dll
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: "WindowsBase, Version=5.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" [] に依存しているか、統合されている参照。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: C:\(ユーザのパス)\.nuget\packages\microsoft.web.webview2\1.0.4078.44\lib_manual\net5.0-windows10.0.17763.0\Microsoft.Web.WebView2.Wpf.dll
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: 参照 "C:\(ユーザのパス)\.nuget\packages\microsoft.web.webview2\1.0.4078.44\lib_manual\net5.0-windows10.0.17763.0\Microsoft.Web.WebView2.Wpf.dll" の原因となったプロジェクト ファイルの項目インクルード。
1>C:\Program Files\Microsoft Visual Studio\2022\Community\MSBuild\Current\Bin\amd64\Microsoft.Common.CurrentVersion.targets(2433,5): warning MSB3277: C:\(ユーザのパス)\.nuget\packages\microsoft.web.webview2\1.0.4078.44\buildTransitive\..\\lib_manual\net5.0-windows10.0.17763.0\Microsoft.Web.WebView2.Wpf.dll
1>WebView2 -> D:\Programs\libmozjpeg\WebBrowser\WebView2\bin\Release\WebView2.dll
WPFなんて、使っていないのに、それを読み込もう(?)としているのか、「Wpf.dll」が邪魔しているのかと思って、それをリネームしたけれど、ダメ。
AIと相談しながら、「.vs」「bin」「obj」各フォルダを削除しても、ダメ。
設定ファイルの中で、
<UseWPF>true</UseWPF>
という風にしてもダメ。
結局、AIの力では解決できず、ネットの力で解決した。
[Problem/Bug]: [NET 9] Dependency conflict · Issue #4924 · MicrosoftEdge/WebView2Feedback
「.vbproj」に以下を追加。
<ItemGroup>
<FrameworkReference Include="Microsoft.WindowsDesktop.App" />
</ItemGroup>
これで、ビルド時の、上記のエラーが解消された。
バージョンが変わると、色んなところが変更されていて、見たことがないエラーが出て、本当に大変だ。(苦笑)
| 固定リンク
「パソコン・インターネット」カテゴリの記事
- タスクマネージャー(2026.08.25)
- 急に(2026.08.07)
- 赤い画面(2026.08.02)
- こちら送金とエアウォレットが、握手(2026.07.16)
- 「WindowsBase」の異なるバージョン間で、解決できない競合(2026.08.13)


コメント