升级自定义包至Umbraco 8时HtmlAgilityPack加载失败问题求助
针对你遇到的发布内容时找不到HtmlAgilityPack程序集的问题,按以下步骤排查解决:
检查DLL的部署路径
确认你打包的HtmlAgilityPack.dll在安装包时,被正确复制到目标Umbraco网站的/bin目录下,而不是只存放在包的专属文件夹里。如果是手动打包的文件夹,调整包的结构,确保安装脚本或逻辑将DLL复制到网站bin目录;如果是NuGet包,校验.nuspec文件中是否把该DLL标记为要部署到bin目录的文件。核对版本一致性
检查你项目代码中引用的HtmlAgilityPack版本是否和打包的DLL版本完全匹配(错误提示是1.8.14.0)。如果项目引用的是其他版本,更新引用到1.8.14.0后重新打包。添加程序集绑定重定向
如果目标Umbraco网站已经安装了其他版本的HtmlAgilityPack,在网站的Web.config中添加绑定重定向,让系统统一使用你包中的版本:<configuration> <runtime> <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1"> <dependentAssembly> <assemblyIdentity name="HtmlAgilityPack" publicKeyToken="bd319b19eaf3b43a" culture="neutral" /> <bindingRedirect oldVersion="0.0.0.0-1.8.14.0" newVersion="1.8.14.0" /> </dependentAssembly> </assemblyBinding> </runtime> </configuration>要是你的包是NuGet格式,可以在包的
install.ps1脚本中自动添加这段配置,减少用户手动操作。校验包的安装逻辑
如果你的包有自定义安装类(比如实现IComposer或旧的IInstaller),检查安装代码里有没有遗漏复制HtmlAgilityPack.dll到网站bin目录的步骤。Umbraco 8推荐用NuGet包管理依赖,能自动处理DLL的部署,比手动打包更可靠。检查网站权限
确认目标Umbraco网站的应用程序池账号对/bin目录有读写权限,避免安装包时DLL无法被正常复制。
内容的提问来源于stack exchange,提问作者Eranga Wijethunga

