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脚本引起的以下错误

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...>\packages\MvcScaffolding.1.0.9\tools\registerWithMvcTooling.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和项目,并查看包管理器控制台.如果错误消失,那么控制器的问题也是如此.

原文链接:https://www.f2er.com/aspnet/251035.html

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