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

此时,如果您右键单击“Views\Home”文件夹并选择“添加...视图”,您将在弹出的警告框中而不是“添加视图”对话框中收到错误消息:

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

解决方法包括但希望不限于:

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

我的问题是:

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

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

4

2 回答 2

6

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

于 2014-05-20T14:26:06.290 回答
0

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

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

于 2014-08-19T10:47:16.263 回答