MvcSiteMapProvider.dll 在 Visual Studio 2013 年不工作

MvcSiteMapProvider.dll not working in Visual Studio 2013

我在 Visual Studio 2010 年创建了一个 MVC 2 项目,该项目使用 MvcSiteMapProvider.dll 并且运行良好。但是在 Visual Studio 2013 中加载项目时,其他一切正常,除了它在

时崩溃
Html.MvcSiteMap().SiteMapPath

错误信息是

An exception of type 'MvcSiteMapProvider.MvcSiteMapException' occurred in MvcSiteMapProvider.dll but was not handled in user code

我认为 MvcSiteMapProvider.dll 无法正确加载。我需要这方面的帮助。谢谢。

请注意,每个 .NET Framework 版本都有一个单独的 DLL,我怀疑您针对的是错误的框架。如果您将 MvcSiteMapProvider 安装到项目中,然后将其更改为不同的 .NET Framework 版本,就会发生这种情况。

NuGet 不会自动 upgrade/downgrade 打包到当前设置的框架版本。此步骤必须手动完成。最好的方法是在尝试之前按照 this document. Also be sure to read this 完全卸载并重新安装软件包。

但请注意,如果您这样做 NuGet 将不会删除您更改的任何文件(如 Mvc.sitemap),然后提示您是否覆盖它们。您通常应该对每个提示说不,以确保您的自定义配置不会被覆盖。

另请注意,将 Assembly Binding RedirectionMvcSiteMapProvider 一起使用是不够的,因为对于每个 .NET Framework 版本,我们都会创建一个单独的构建 (DLL),以利用其中不存在的功能以前的版本。