在VS 2010中打开并编译我的MVC4项目后,我收到以下错误。
CS1705:程序集'SDEM,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null'使用'System.Web.Mvc,Version = 4.0.0.1,Culture = neutral,PublicKeyToken = 31bf3856ad364e35',其版本较高比引用的程序集'System.Web.Mvc,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'
在我的web.config中我有
<add assembly="System.Web.Mvc, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
任何人都知道我应该怎么做才能解决这个版本的问题?
答案 0 :(得分:9)
它显示您在项目中引用的程序集具有与web.config(4.0.0.0)中不同的版本(4.0.0.1)。
请检查System.Web.Mvc的引用程序集是否与web.config中所写的相同。
如果没有,则添加对相应组件的引用。 右键点击 参考文献 - &gt;添加参考 - &gt; ...
答案 1 :(得分:8)
为引用System.Web.Mvc dll的所有项目安装Nuget包 Microsoft.AspNet.Mvc
示例:安装包Microsoft.AspNet.Mvc
答案 2 :(得分:0)
解决方案:
不要直接从cshtml代码中引用Nuget软件包组件。而是编写一个从您的具有相同签名的自定义扩展方法中调用静态HtmlHelper扩展方法的适配器。
此方法有两个优点:
我刚刚验证了从PagedList / PagedList.MVC到X.PagedList / X.PagedList.MVC的迁移。
namespace MyMvcExtensions
{
public static class MyHelperExtensions
{
...
public static HtmlString PagedListGoToPageForm(this HtmlHelper html, IPagedList list, string formAction)
{
return X.PagedList.Mvc.HtmlHelper.PagedListGoToPageForm(html, list, formAction);
}
public static HtmlString PagedListGoToPageForm(this HtmlHelper html, IPagedList list, string formAction, string inputFieldName)
{
return X.PagedList.Mvc.HtmlHelper.PagedListGoToPageForm(html, list, formAction, inputFieldName);
}
public static HtmlString PagedListGoToPageForm(this HtmlHelper html, IPagedList list, string formAction, X.PagedList.Mvc.Common.GoToFormRenderOptions options)
{
return X.PagedList.Mvc.HtmlHelper.PagedListGoToPageForm(html, list, formAction, options);
}
public static HtmlString PagedListPager(this System.Web.Mvc.HtmlHelper html, IPagedList list, Func<int, string> generatePageUrl)
{
return X.PagedList.Mvc.HtmlHelper.PagedListPager(html, list, generatePageUrl);
}
public static HtmlString PagedListPager(this HtmlHelper html, IPagedList list, Func<int, string> generatePageUrl, X.PagedList.Mvc.Common.PagedListRenderOptionsBase options)
{
return X.PagedList.Mvc.HtmlHelper.PagedListPager(html, list, generatePageUrl, options);
}
}
}
在您的cshtml代码中,使用@using MyMvcExtensions而不是@using X.PagedList.Mvc。
如果您要迁移到假设的Y.PagedList.MVC,则编译器将警告您必须在MyHelperExtensions类中进行更改。