The type 'IEnumerable<>' is defined in an assembly that is not referenced

12,097

Solution 1

Make sure you have the following lines in your Web.config file:

<compilation debug="true" targetFramework="4.6.1"> //don't need to change THIS line, just the content of this section
  <assemblies>
    <add assembly="System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
    <add assembly="System.Collections, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
  </assemblies>
</compilation>

Solution 2

I know its a bit "too" late for answering, but for who just had this error I solved it just as the second half of the error says which is just adding an assembly reference for net standard in the assemblies section in the web config file and as following:

<configuration>
  ...
  <system.web>
    <compilation debug="true" targetFramework="4.6.1">
      <assemblies>
        <add assembly="netstandard, Version=2.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51"/>
      </assemblies>
    </compilation>
  </system.web>
      ...
</configuration>
Share:
12,097

Related videos on Youtube

adam78
Author by

adam78

Updated on September 23, 2022

Comments

  • adam78
    adam78 over 1 year

    I have added the following nuget package to my MVC 5 application X.PagedList.Mvc

    I return the results in my controller/view as follows:

    // Repo
    public IPagedList<Post> GetPagedPosts(int pageNumber, int pageSize)
    {
       var posts = _context.Post
          .Include(x => x.Category)
          .Include(x => x.Type);
    
       // Return a paged list
       return posts.ToPagedList(pageNumber, pageSize);
    
    }
    
    // View model
    public class PostViewModel
    {
       public IPagedList<Post> Posts { get; set; }
       ...
    }
    
    // Controller method
    public ActionResult Index(int? page)
    {
    
        int pageNumber = page ?? 1;
        int pagesize = 5;
    
        var posts = _PostRepository.GetPagedPosts(pageNumber, pagesize);
    
        var viewModel = new PostViewModel
        {
            Posts = posts,
            ...
        };
    
        return View(viewModel);
    }
    
    // View
    @model MyApp.ViewModels.PostViewModel
    @using X.PagedList.Mvc;
    @using X.PagedList;
    
    <p>Page @(Model.Posts.PageCount < Model.Posts.PageNumber ? 0 : Model.Posts.PageNumber) of @Model.Posts.PageCount </p>
    

    But in my view I am getting the following error The type 'IEnumerable<>' is defined in an assembly that is not referenced. System.Runtime...

    I have no project.json file in my application so what is this error?

  • Rinktacular
    Rinktacular about 7 years
    For future reference, I had to close my Visual Studio and then reopen Visual Studio. The errors did not go away, even after following this answer, until I closed and reopened.
  • Junior Mayhé
    Junior Mayhé about 7 years
    It seems XPagedList needs these lines in order to get rid off warnings about Model in cshtml files. I also deleted bin and obj folders in all projects, closed Visual Studio 2017 and reopened the solution. Now build is working with no errors.
  • Newclique
    Newclique about 5 years
    This is the only solution that worked for me. Thank you! And, you're right. This is exactly what the error message indicated I needed to do to resolve the error in Visual Studio 2017.