加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

asp.net-mvc – 无法添加MVC控制器VS2012给出“对象引用未设置为

发布时间:2020-12-15 23:54:22 所属栏目:asp.Net 来源:网络整理
导读:我已经搜索广泛,找不到这个问题的地球上的另一个人… 症状是:在Visual Studio 2012中,从VS2010升级的MVC 4.0项目,并配置为从VS2012和VS2010进行双版本编辑.当我右键单击控制器文件夹并从上下文菜单中选择Add- Controller …时,我从Visual Studio获
我已经搜索广泛,找不到这个问题的地球上的另一个人…
症状是:在Visual Studio 2012中,从VS2010升级的MVC 4.0项目,并配置为从VS2012和VS2010进行双版本编辑.当我右键单击控制器文件夹并从上下文菜单中选择Add-> Controller …时,我从Visual Studio获取“对象引用未设置为对象的实例”错误.
项目中的现有代码运行正常,如果我使用Add-> New Item选项,并从对话框中选择Controller,那么我可以添加一个空白控制器.我只是不能使用上面的方法添加一个类型的控制器.
如果我创建一个新的MVC4项目,那么我可以使用相同的菜单再次添加类型的控制器,所以在Visual Studio的安装中不存在问题,它必须存在于项目文件中.我还检查了我的项目和一个新的MVC项目之间的引用,所有的新项目引用都包含在我的项目中.有谁经历过类似的事情吗?我如何解决这个问题?

解决方法

这个问题似乎是由于MvcScaffolder软件包的不完整安装/注册引起的.
以下过程解决了我的问题.

启动Visual Studio并打开项目.打开包管理器控制台. (这是导致解决方案的“窍门”或缺失的信息…)

这里我看到由用于注册的PowerShell脚本引起的以下错误:

New-Object : Could not load file or assembly 'System.Management.Automation,Version=3.0.0.0,Culture=neutral,PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified.
At <ProjectPath...>packagesMvcScaffolding.1.0.9toolsregisterWithMvcTooling.ps1:163 char:27
+     $newProvider = New-Object <<<<  $powerShellScaffolderProviderType($mvcScaffoldingProvider)
    + CategoryInfo          : NotSpecified: (:) [New-Object],FileNotFoundException
    + FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.NewObjectCommand

当我从包管理器控制台检查登记的脚手架时,我得到:

PM> get-defaultscaffolder

DefaultName          ScaffolderName
Action               MvcScaffolding.Action
Controller           MvcScaffolding.Controller
CustomScaffolder     T4Scaffolding.CustomScaffolder
CustomTemplate       T4Scaffolding.CustomTemplate
DbContext            T4Scaffolding.EFDbContext
Mailer               Mailer.Razor
Repository           T4Scaffolding.EFRepository
UnitTest             MvcScaffolding.ActionUnitTest
View                 MvcScaffolding.RazorView
Views                MvcScaffolding.Views

所以很明显,脚手架配置为使用MvcScaffolding包,但包装有注册错误.

快速搜索错误提供了此链接http://mvcscaffolding.codeplex.com/discussions/437692,其中提到了https://visioautomation.codeplex.com/discussions/397034,建议安装实际上是Windows Management Framework 3.0的一部分的PowerShell 3,可从http://www.microsoft.com/en-us/download/details.aspx?id=34595开始.在提示时选择了Windows6.1-KB2506143-x64.msu文件因为我运行Win 7-64位.

安装后重新启动PC,重新打开Visual Studio和项目,并查看包管理器控制台.如果错误消失,那么控制器的问题也是如此.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读