我正在使用VS 2017构建一个ASP.NET MVC应用程序,面向.NET 4.7 ,我正在尝试在Web应用程序引用的业务库中构建我的模型。所以我试图将默认的MVC项目中的许多相同的类放到一个全新的类库中。
特别是,我收到以下错误:
这个非常与此问题的前一次发布有所不同:
即,只需在System.Web.Mvc
生活System.Web.Mvc
的情况下加入使用声明,就可以解决它们。
但我肯定已经完成了......这是类库的参考管理器,其中包含可用于.NET 4.7的引用
作为进一步的证据,这里有一个并列示例,我可以从IClientValidatable
中提取某些类,但不是SELECT [Id], [Name] FROM [People] WHERE Name LIKE '%' + CHAR(39) + '%'
为了便于参考,这里是类库本身的配置
这个班级搬到哪儿了?是否可以使用.NET 4.7?
答案 0 :(得分:0)
所以真正的问题似乎不是它去了哪里,而是为什么最新的框架针对这样一个旧版本。
尝试在针对.NET Framework 4.7时添加对System.Web.MVC
的引用时,唯一可用的选项是MVC v2.0.0.0,它非常古老。播种新的MVC应用程序时,它将随附v5.2.3.0
这里是加载了两个库的 Assembly Explorer 。常见项目将在每个项目中突出显示,但IClientValidatable
未添加到以后。
这里是VS 2017 参考管理器,您可以根据当前框架添加参考,显示新.NET版本的旧MVC库。
那么问题就变成......
问:如何添加框架列表中不可用的引用?
A :您添加任何其他引用的方式相同 - 您可以浏览到dll或从nuget中获取它。
DLL 如果您已经有了一个网络应用程序,那么您可以在现有的包目录中找到dll的好处:
\packages\Microsoft.AspNet.Mvc.5.2.3\lib\net45\System.Web.Mvc.dll
如果您更喜欢 Nuget ,一些小烦恼是nuget包名称与他们安装的程序集完全同步,浏览或搜索哪些程序集并不容易附带哪些软件包,它们的库和框架经常与您可能不需要的其他东西捆绑在一起。所有这一切,你都在寻找名为:
的软件包将安装以下库: