"在VS 2013脚手架中运行所选代码生成器时出错"

Bri*_*ian 36 c# asp.net-mvc-scaffolding visual-studio-2013 asp.net-mvc-5

我正在创建一个模型的新视图.
我得到的错误信息是

错误
运行所选代码生成器时出错:
'访问路径
'C:\ Users\XXXXXXX\AppData\Local\Temp\SOMEGUID\EntityFramework.dll'被拒绝'.

我以管理员身份运行VS 2013.

通过命令行查看了MvcScaffolding是否与VS 2013 RC兼容?但这似乎没有解决问题.

VS2013 C#5 MVC5全新项目始于VS 2013.

Bil*_*l B 24

VS2013错误:运行所选代码生成器时出错:'已添加类型'SolutionName.Model.SalesOrder'的配置...'

我在使用Pluralsight课程"使用EF,MVC,Knockout,Ajax和验证的父子数据"时遇到了这个问题.我正在尝试使用带有视图的模板MVC 5 Controller添加一个新的Scaffolded Item ,使用Entity Framework.

我正在使用的数据上下文类包括OnModelCreating方法的重写.需要覆盖以添加一些显式数据库列配置,其中EF默认值不足.这个覆盖很简单,有效,没有错误,但是(如上所述)它确实干扰了Controller脚手架代码生成.

对我有用的解决方案:

1 - 我删除(注释掉)我的OnModelCreating覆盖和脚手架模板完成而没有错误消息 - 我的控制器代码是按预期生成的.

2 - 然而,试图建立项目因为"模型已经改变"而窒息.由于我的控制器代码现已正确生成,我恢复(未注释)OnModelCreating覆盖,并且项目已构建并成功运行.

  • 我遵循与上面相同的过程,但使用EF 6(以及VS 2013).我得到了同样的错误.在上面的步骤1中,记住在注释掉OnModelCreating之后重建解决方案,或者它不会创建新的脚手架项目. (4认同)

Bri*_*ian 16

问题是web.config和包目录已损坏.

我创建了新项目,并将我的代码文件复制到新的工作项目中,之后我回过头来对配置文件运行差异,并在项目本身上运行文件夹差异.

问题是更新已经高度破坏了我的配置文件,其中包含许多更新工件,我最终清理了.

第二个问题是旧的项目也一直挂在应该使用Nuget包的应用程序擦除的旧DLL上.所以我擦了obj和bin文件夹,然后是包文件夹.在那之后,我能够修复旧项目并干净地构建.

我没有调查为什么配置文件或包文件夹是如此borked,但我认为它是两件事之一.

  1. 可能nuget包有一个缺陷
  2. TFS源代码控制阻止nuget正确更新各种依赖项.

从那时起,在应用任何更新之前,我会查看所有内容.但是,由于我有一段时间没有更新EF,我没有证据表明这已经解决了我的EF或脚手架问题.

  • 我删除了包,它再次起作用!非常感谢你! (2认同)

小智 12

我能够解决这个问题,并对发生的事情有了更好的了解.最好的部分是我能够重新创建问题并修复它以确保我的解释. 解决方案是为数据访问层项目和Web项目安装完全相同版本的实体框架.

我的数据访问层使用NuGet安装了Entity Framework v6.0.2,Web项目没有安装Entity Framework.尝试使用实体框架模板创建Web API控制器时,实体框架会自动安装,但它是旧版本6.0.0之一.我很惊讶地看到安装了两个版本的Entity Framework,我的数据层项目更新,而我的Web项目更新.有一次,我删除了旧版本并在Web Project上安装了新版本,问题就消失了.


Rit*_*ieD 10

我检查了所有项目,每个项目都有相同版本的Entity Framework.就我而言,问题是我的一个项目是针对.Net 4.0而其余的是.Net 4.5.

解:

  1. 对于解决方案项目中的每个项目 - >属性 - >应用程序:将目标框架设置为.Net 4.5(或您需要的任何内容).
  2. 工具 - >管理NuGet包以获得解决方案.查找已安装的"实体框架".然后单击"管理" 取消选中所有项目(请注意需要EF的项目).现在,重新管理EF并检查您需要的项目.
  3. 清洁和重建解决方案.


eri*_*nia 9

我在我找到的每个网站上都尝试了每一个答案,没有任何效果......直到这个.如果像我这样的人出现并且拥有和我一样令人沮丧的经历,那么就会发布很晚.

我的问题类似于许多这里,当尝试使用脚手架尝试添加新控制器(ef6,webapi)时的一般错误消息.我最初能够为大约15个控制器使用脚手架,之后它就停止工作了一天.

最终解决方案

  1. 打开硬盘上的工作文件夹以获得解决方案.
  2. 删除BIN文件夹中的所有内容
  3. 删除OBJ文件夹中的所有内容
  4. 清洁解决方案,重建解决方案,通过脚手架添加控制器

瞧!(为了我)