“添加视图”对话框在引用F#项目的MVC 5项目中不起作用

时间:2013-10-27 22:10:31

标签: f# visual-studio-2013 asp.net-mvc-5

  1. 使用Visual Studio 2013,使用MVC模板创建新的ASP.NET Web应用程序项目。通过右键单击“Views \ Home”文件夹并选择“添加...查看”来验证“添加视图”对话框的功能。
  2. 现在向解决方案添加一个新的F#Library项目。 “添加视图”对话框仍应正常运行。
  3. 现在,通过右键单击References文件夹,选择Add Reference,将MVC项目中的项目引用添加到F#项目,然后浏览到左侧的Solution ... Projects并检查刚刚添加的F#库项目。
  4. 此时,如果右键单击“Views \ Home”文件夹并选择“添加...查看”,则会在弹出警告框中出现错误,而不是“添加视图”对话框:

      

    运行所选代码生成器时出错:'对象引用未设置为对象的实例。'

    变通办法包括,但希望不限于:

    • 每次要添加新视图时,删除对所有F#项目的所有引用。
    • 卸载所有引用的F#项目,但每次要添加新视图时都保留项目引用。

    我的问题是:

    • 是其他人看到这种行为,还是仅仅是我?
    • 有没有人知道更好的解决方法,而不是删除引用或卸载F#项目?
    • 有谁知道微软是否已经在努力解决这个问题?如果不是,应该向F#团队或Visual Studio团队报告?

    在这个问题和无法使用NuGet为任何F#项目添加实体框架6引用的事实之间,我开始对微软对F#语言的承诺水平感到紧张。

2 个答案:

答案 0 :(得分:6)

不确定这是否会对您有所帮助,但请检查解决方案中的EntityFramework版本。我的解决方案中有两个项目,无论出于何种原因,Web项目都有EF 6,类库项目是EF 6.1。完全从解决方案中卸载EF并在两个项目上重新安装EF 6.1后,“添加新视图”操作开始工作。

答案 1 :(得分:0)

在C#中添加视图或控制器时收到了相同的错误消息。 MVC多项目解决方案,使用EF 6.1和VS2013与Update 3.问题是因为nuget“packages”文件夹被标记为只读,因为它被检入源控件。我检查了整个文件夹,使其可编辑,并且它开始正常工作,允许我直接从VS支架。

我还收到了web.api项目中的错误消息,因为我忘了将实体框架连接字符串添加到web.config(它使用的是区域和EF正在查找区域web.config,而不是Web。在根目录中配置。