Nuget重新安装后解析实现IMultiInstancePlugin

时间:2016-11-14 17:50:10

标签: c# imageresizer

使用.Net 4.6.2。

我从源代码管理中加载了一个旧项目以添加新的图像页面。

图片页面保存在各自的文件夹中,所以我只是将“folder2015”的功能复制到“folder2016”并运行相同的代码:

<html>
  <head>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.8/angular.min.js"></script>
  </head>
  <body data-ng-controller="redirectCtrl as rc">
    <input type="text" data-ng-model="rc.anotherurl" />
    <a href="" data-ng-click="rc.redirect(rc.anotherurl)">Redirect me</a>
  </body>
</html>

每个private void DisplayImages(string path) { var dir = new DirectoryInfo(path); var files = dir.GetFiles("DSC*.JPG"); var sb = new StringBuilder("<table>"); var td_counter = 0; for (int n = 0; n < files.Length; n++) { var file = files[n]; var ext = file.Extension.ToLower(); var lc_name = file.Name.Substring(0, file.Name.ToLower().IndexOf(ext)); if (lc_name.IndexOf("_s") == -1) { var thumb = String.Format("{0}_s{1}.ashx?w=240&h=240", lc_name, ext); if (td_counter == 0) { sb.Append("<tr>"); } sb.Append(String.Format("<td><a href=\"{0}\" target=\"_blank\"><img src=\"{1}\"></a></td>", file.Name, thumb)); td_counter++; if (td_counter == 3) { td_counter = 0; sb.AppendLine("</tr>"); } } } sb.AppendLine("</table>"); divDefault.InnerHtml = sb.ToString(); } 图片都介于6-8 MB之间。

页面会加载,但所有图片都不可用。

我在Web.config文件中看到了DSC*.JPG个条目,所以决定需要在这台PC上运行这些软件包。

我输入了Package Manager Console以获取最新信息:

  

PM&GT;安装包ImageResizer.MvcWebConfig
  PM&GT;安装包ImageResizer.Plugins.DiskCache
  PM&GT;安装包ImageResizer.Plugins.PrettyGifs

我仍然没有看到图片,所以我进行了调试,发现我需要查看 resizer.debug.ashx 文件。

我看到的第一个错误是盯着我:

  

插件(ConfigurationError):已添加指定插件的实例(ImageResizer.Plugins.Basic.MvcRoutingShimPlugin)。如果插件支持多个实例,则实现IMultiInstancePlugin。

完整的 resizer.debug.ashx 文件位于粘贴文件夹上:http://pastebin.com/iVT6QJS5

如何删除这些重复项?我需要告诉Nuget先卸载吗?我是否需要在Nuget remove和Nuget install之间重启或重新启动VS?

1 个答案:

答案 0 :(得分:1)

删除<add name="MvcRoutingShim" />,因为它已经默认加载了 - 您的配置正在尝试加载另一个实例。

看起来像DiskCache和PrettyGifs的Install-Package不起作用,因为找不到那些.dll