.NET Framework网站引用.NET Standard类库引发FileNotFoundException求助
味,都是实际的解决步骤,格式正确。</think_never_used_51bce0c785ca2f68081bfa7d91973934># 解决System.ComponentModel.Annotations运行时找不到的问题
以下是针对该问题的具体解决步骤:
添加程序集绑定重定向
.NET Framework项目依赖绑定重定向来统一程序集版本。在网站的web.config的<configuration>节点内添加如下配置,强制将所有旧版本的请求重定向到5.0.0.0:<runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="System.ComponentModel.Annotations" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0" /> </dependentAssembly> </assemblyBinding> </runtime>清理重建并验证依赖部署
- 检查网站项目的引用属性,确保
System.ComponentModel.Annotations的Copy Local设置为True。 - 删除网站和类库项目下的
bin、obj文件夹,然后执行清理解决方案→重建解决方案,确保输出目录都是最新的程序集。 - 查看
packages.config或项目文件,确认NuGet包版本确实是5.0.0,没有残留的4.2.0.0引用。
- 检查网站项目的引用属性,确保
排查传递依赖
右键解决方案选择「管理解决方案的NuGet程序包」,切换到「已安装」标签,检查所有项目中System.ComponentModel.Annotations的版本,确保没有间接依赖引入4.2.0.0版本。也可以用dotnet list package --include-transitive命令查看类库的所有传递依赖。手动部署程序集
如果上述步骤无效,直接从NuGet包目录(通常是packages\System.ComponentModel.Annotations.5.0.0\lib\net461)复制System.ComponentModel.Annotations.dll到网站的bin目录,确保运行时能找到该文件。检查发布配置
若发布到服务器,确认发布设置中勾选了「复制本地所有依赖项」,避免发布过程中遗漏新版本程序集。
内容的提问来源于stack exchange,提问作者Thierry Verhaegen
相关产品推荐
相关产品推荐

