--- lang: ja-jp breaks: true --- # SDKスタイルの WPF プロジェクトで、「`不明なビルド エラー 'Could not find assembly 'Microsoft.VisualStudio.DesignTools.Extensibility, Version=16.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'`」が出力されてビルドがこける 2022-07-01 ## 環境 * Visual Studio 2022 * TargetFrameworks:`net48;net6.0-windows` ## エラー内容 ```shell= 1>C:\Program Files\dotnet\sdk\7.0.100-preview.4.22252.9\Sdks\Microsoft.NET.Sdk.WindowsDesktop\targets\Microsoft.WinFX.targets(211,9): error MC1000: 不明なビルド エラー 'Could not find assembly 'Microsoft.VisualStudio.DesignTools.Extensibility, Version=16.5.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. Either explicitly load this assembly using a method such as LoadFromAssemblyPath() or use a MetadataAssemblyResolver that returns a valid assembly.' が発生しました ``` ## 調査 > .Net Core WPF control designer extensibility > https://developercommunity.visualstudio.com/t/net-core-wpf-control-designer-extensibility/895752 > XAML designer extensibility migration > https://github.com/microsoft/xaml-designer-extensibility/blob/main/documents/xaml-designer-extensibility-migration.md ## 対応 csproj に `Microsoft.VisualStudio.DesignTools.Extensibility` を追加すればビルドは通るようになるが、互換性はないとの警告が出る。 ```shell= warning NU1701: パッケージ 'Microsoft.VisualStudio.DesignTools.Extensibility 17.2.32505.113' はプロジェクトのターゲット フレームワーク 'net6.0-windows7.0' ではなく '.NETFramework,Version=v4.6.1, .NETFramework,Version=v4.6.2, .NETFramework,Version=v4.7, .NETFramework,Version=v4.7.1, .NETFramework,Version=v4.7.2, .NETFramework,Version=v4.8' を使用して復元されました。このパッケージは、使用しているプロジェクトとの完全な互換性がない可能性があります。 ``` ## `Microsoft.Xaml.Behaviors.Wpf` のバージョンを `1.1.39` に開けたら、エラーもなくなり、`Microsoft.VisualStudio.DesignTools.Extensibility`は不要となった。 ###### tags: `WPF` `MSBuild` `Microsoft.VisualStudio.DesignTools.Extensibility`