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

前端之家收集整理的这篇文章主要介绍了asp.net-mvc – 无法添加MVC控制器VS2012给出“对象引用未设置为对象的实例”前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经搜索广泛,找不到这个问题的地球上的另一个人…
症状是:在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脚本引起的以下错误

  1. 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.
  2. At <ProjectPath...>\packages\MvcScaffolding.1.0.9\tools\registerWithMvcTooling.ps1:163 char:27
  3. + $newProvider = New-Object <<<< $powerShellScaffolderProviderType($mvcScaffoldingProvider)
  4. + CategoryInfo : NotSpecified: (:) [New-Object],FileNotFoundException
  5. + FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.NewObjectCommand

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

  1. PM> get-defaultscaffolder
  2.  
  3. DefaultName ScaffolderName
  4. Action MvcScaffolding.Action
  5. Controller MvcScaffolding.Controller
  6. CustomScaffolder T4Scaffolding.CustomScaffolder
  7. CustomTemplate T4Scaffolding.CustomTemplate
  8. DbContext T4Scaffolding.EFDbContext
  9. Mailer Mailer.Razor
  10. Repository T4Scaffolding.EFRepository
  11. UnitTest MvcScaffolding.ActionUnitTest
  12. View MvcScaffolding.RazorView
  13. 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和项目,并查看包管理器控制台.如果错误消失,那么控制器的问题也是如此.

猜你在找的asp.Net相关文章