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


    使用
  1. Visual Studio 2013,使用 MVC 模板创建新的 ASP.NET Web 应用程序项目。通过右键单击"视图\主页"文件夹并选择"添加...视图"。
  2. 现在,将新的 F# 库项目添加到解决方案中。"添加视图"对话框应仍能正常运行。
  3. 现在,将 MVC 项目中的项目引用添加到 F# 项目,方法是右键单击"引用"文件夹,选择"添加引用",然后浏览到"解决方案..."左侧的项目,并检查刚刚添加的 F# 库项目。

此时,如果您右键单击"视图\主页"文件夹并选择"添加...视图",您将在弹出警报框中收到错误,而不是"添加视图"对话框:

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

解决方法包括但不限于:

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

我的问题是:

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

在此问题和仍然无法使用 NuGet 向任何 F# 项目添加实体框架 6 引用的事实之间,我开始对Microsoft对 F# 语言的承诺程度感到紧张。

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

在 C# 和 MVC 多项目解决方案中添加视图或控制器时,使用 EF 6.1 和 VS2013 和 Update 3 时,我收到了相同的错误消息。问题是因为 nuget "packages"文件夹被标记为只读,因为它已签入源代码管理。我签出了整个文件夹,使其可编辑,它开始正常工作,允许我直接从 VS 搭建脚手架。

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

最新更新