System.TypeLoadException:“无法从程序集‘FluentValidation,Version=9.0.0.0,Culture=neutral,PublicKeyToken=7de548da2fbae0f0’加载类型‘FluentValidation.Attributes.ValidatorAttribute’。’
从 .netcore2 升级到 .netcore6 后出现上述错误。我尝试升级到最新的 10.x,但没有成功。此外,错误中没有 9.0.0 版本的 Nuget,只有 9.0.1 可用,这也会引发相同的错误。
从 FluentValidation 8.0 版开始,
ValidatorAttribute
已移至单独的 NuGet 包FluentValidation.ValidatorAttribute
.
来自文档
不再推荐使用 ValidatorAttribute 来连接验证器,并且已移至单独的
包。FluentValidation.ValidatorAttribute
请注意,不再推荐使用该属性,
甚至被认为是遗产。
因此,NuGet 包有以下通知。
此软件包已被弃用,因为它是遗留的并且不再维护。
文档展示了如何迁移
- 在 ASP.NET Core 项目中,您应该使用服务提供者将模型连接到它们的验证器(这是自 FluentValidation 7 以来 ASP.NET Core 项目的默认行为)
- 对于桌面或移动应用程序,我们建议使用 IoC 容器来连接验证器,尽管您仍然可以通过显式安装
包来使用属性方法。FluentValidation.ValidatorAttribute
- 在旧版 ASP.NET 项目(MVC 5 和 WebApi 2)中,
仍然是默认方法,并且会自动安装ValidatorAttribute
包以实现兼容性。但是,如果可以的话,我们建议您改用 IoC 容器。FluentValidation.ValidatorAttribute