【问题标题】:Why does my project not get rebuilt and references in my unit tests not get updated when targeting x86?为什么以 x86 为目标时,我的项目没有重建并且单元测试中的引用没有得到更新?
【发布时间】:2010-06-20 14:14:39
【问题描述】:

我在 VS 2010 中创建了一个针对 .NET 4.0 的控制台应用程序。根据Microsoft (Rick Byers) AnyCPU 不再是控制台应用程序的默认设置,因为按照微软的方式,他们觉得默认使用 x86 是一个更好的主意。此外,将平台更改为 AnyCPU 或 x64 的选项似乎不可用。

现在,我正在构建这个控制台应用程序,并且我有一个类库项目,我在其中使用 NUnit 编写单元测试(我练习 TDD)。所以,问题是当我去实现代码以使我的测试通过时,它们仍然失败。过了一会儿,我发现这是因为(即使我从解决方案级别执行此操作)当项目重建时,它并没有重建控制台应用程序项目。这会导致引用在我的单元测试中没有得到更新,这当然意味着我的测试是针对旧代码而不是新实现的代码执行的。大问题。

目前,我必须右键单击控制台应用程序并选择重建,然后在运行测试之前右键单击测试项目并选择重建每次。这非常烦人。

那么,回到这个问题,我怎样才能让 VS2010 重建我的控制台应用程序并像在旧版本的 Visual Studio 中那样自动更新我的类库中的引用?

请不要回答“添加构建事件来执行此操作”。我非常感谢 Visual Studio 能够正常工作,因为我不想记住每次创建新控制台应用程序时都需要“添加构建事件来完成它”。

注意: 到目前为止,我已经尝试了以下解决方法:

http://connect.microsoft.com/VisualStudio/feedback/details/455103/new-c-console-application-targets-x86-by-default

这不适用于我的单元测试项目。所以我尝试删除引用并从 Visual Studio 重新添加它,我得到一个对话框,上面写着“无法添加引用”。所以我将其恢复为 Visual Studio 默认模板。

更新: 我将此记录为 Microsoft Connect here. 的错误

【问题讨论】:

  • 您是否尝试过设置构建依赖项? s3.amazonaws.com/floomby/6_20_2010/DrTo9AZkGkiZsRp8uP84Ew.jpg
  • @Restuta 是 - 已经在解决方案属性中设置了构建依赖项。我只是注意到解决方案属性中没有选中“构建”复选框(奇怪的是你会认为它默认为选中)。检查它似乎是解决方案。

标签: .net unit-testing visual-studio-2010


【解决方案1】:

右键单击解决方案并选择配置管理器。 在列表中找到控制台应用程序并选中“构建”复选框。 (让我难以捉摸这不是默认检查的)。

解决了我的问题。现在一切都按照我想要的方式进行。

如果有更好的解决方案,或者如果有人知道如何让它默认为我检查,我将不胜感激。

【讨论】:

  • 它在我的VS中默认检查,您是否尝试创建新的解决方案和新项目并调查是否检查它?
  • @Restuta 这很奇怪。当我创建 new 解决方案并立即向其中添加项目时,它会默认检查它。当我将一个新的控制台应用程序项目添加到我现有的解决方案(以前是升级到 2010 的 VS2008 解决方案)时,它默认会检查它
猜你喜欢
  • 2022-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多