以前にコンソールアプリで AI を扱う機能を Web アプリに動的に追加する記事を書きました。
rksoftware.hatenablog.com
今回は Pleasanter というアプリに組み込んでみます。GitHub のリポジトリはこちら。
Pleasanter は C# で書かれた .NET の ASP.NET アプリです。そのアプリに AI を組み込んでみたい話です。
■ 一連の記事の目次です。
■ うまくいかない
同じことをしてみるとまずは、Assembly.LoadFrom でエラーになります。
The located assembly's manifest definition does not match the assembly reference. (0x80131040)
ここは解決策ではないのですが、いったんエラーになる dll をディレクトリから除外してみて進めてみます。 具体的には、独自の dll と Azure.AI.OpenAI.dll だけが残ります。
■ うまくいかない
Microsoft.AspNetCore.Builder.RazorPagesEndpointRouteBuilderExtensions.MapRazorPages(this IEndpointRouteBuilder endpoints) メソッドでエラーになります。
'Unable to load one or more of the requested types
ここは解決策ではないのですが、いったんエラーになるメソッドをコメントにして進めてみます。
■ うまくいかない
Microsoft.AspNetCore.Builder.ControllerEndpointRouteBuilderExtensions.MapControllerRoute メソッドでエラーになります。
Unable to load one or more of the requested types.
■ 理由
これは、別のバージョンの dll が bin の中にいるために不整合を起こしているようです。
■ 解消
dll を Microsoft.Extensions.DependencyInjection.MvcCoreMvcBuilderExtensions.AddApplicationPart(this IMvcBuilder builder, Assembly assembly) で読み込むのとは別に、 bin のものも上書きします。
※実質 2 回ロードされることになりますが問題ありません。
これでなんとか動かせました。
■ いかがでしたか?
いかがでしたか?