【问题标题】:Project won't build when I change configuration in Visual Studio当我在 Visual Studio 中更改配置时,项目不会生成
【发布时间】:2015-05-28 09:51:16
【问题描述】:

我通过将命名空间分成单独的项目来重构我的 MVC/Entity Framework 项目。所以我现在有了这个结构:

MySolution.Data
MySolution.Data.Contracts
MySolution.Model
MySolution.Website

一切都在我的开发环境中构建和运行。但是,当我尝试部署到“暂存”服务器时遇到问题。

我遇到的问题是,当我将解决方案配置更改为“暂存”时,它不会构建。在配置管理器中,所有项目也有“暂存”配置。我假设这些是在添加新项目时创建的。

我尝试的第一件事是创建一个新的解决方案配置,其中包含从名为“解决方案 2”的 Debug 复制的所有内容。没有运气,仍然失败。

然后我想我只需要对网站项目进行不同的配置 - 我在其中转换配置文件。所以我更改了解决方案配置,告诉它构建和部署 Hub.Model 的“调试”配置 - 从第一条错误消息来看,它看起来像问题项目。果然,它现在构建了。

第一个错误消息(263)是:

命名空间“System.ComponentModel.DataAnnotations”中不存在类型或命名空间名称“Schema”(您是否缺少程序集引用?)MySolution.Model

所以看起来是对实体框架 dll 的引用存在问题

虽然我现在确实有一个解决方法,但我担心这个无法解释的错误会在未来的某个时候再次出现并困扰我 - 可能就在我即将部署紧急修复时。

那么,当我更改项目配置时,为什么我的一个项目会构建失败?

【问题讨论】:

  • 嗯,听起来确实很奇怪。与命名空间相关的所有 263 错误都不存在吗?
  • @Coulton 看起来这确实是根本原因。困惑于为什么它会构建在一种配置中而不是另一种配置中。无论如何,我继续我的旅程 - 这是从 MVC 4 到 MVC 5 的升级。因此,自从我发布问题以来,我升级了许多包,并从我的 Models 项目中完全删除了 MVC。现在它构建,无论配置如何,所以可能会好起来。谢谢
  • 很高兴听到,一切顺利!

标签: asp.net-mvc entity-framework visual-studio


【解决方案1】:

您需要确保安装正确的 nuget 包并引用所有程序集。

您出现的错误解决方法如下:(Reference)

您必须引用定义此命名空间的程序集 (默认情况下在 Visual Studio 模板中不引用它)。打开 您的参考经理并添加对 System.ComponentModel.DataAnnotations 程序集(解决方案资源管理器 -> 添加参考 -> 选择 .Net 选项卡 -> 选择 System.ComponentModel.DataAnnotations 列表)。然后选择该引用并在属性下将“复制本地”设置为 true,一旦发布,它将位于您的 bin 文件夹中,并且不会影响任何服务器,无论是 x32 还是 x64。

编码愉快:)

【讨论】:

  • 问题不只是为什么我的一个项目无法构建 - 因为,实际上,它没有!问题是为什么当我更改项目配置时它会失败?无论如何,我随后升级到 ASP.NET 4.6,在此过程中我删除了软件包并重新安装了其他软件包,现在问题已经消失了。所以我会接受你的回答!我怀疑 Visual Studio 中的故障...
  • 好吧,其实在 ASP.NET 4.5 版本之前,现在就出现这样的问题,希望您在更改项目配置或发布后不会再出现这样的问题。
猜你喜欢
  • 1970-01-01
  • 2014-12-04
  • 2014-12-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多