发生代码更改时,Visual Studio 2010不会在运行前构建


126

多年来,我一直在使用F5(开始调试)来构建代码(如果代码过时),然后进行调试。这也适用于VS 2010,但是今天它只是在没有构建的情况下开始调试。假设我对项目进行了清理,然后按F5而不是对其进行构建,因此它可以运行,它会抛出一条错误消息,指出该exe不存在即可运行。我如何使其首先构建?可能发生了什么变化?


1
我遇到过同样的问题。从第一天到第二天,我没有在“选项”对话框中进行任何更改。汉斯的答案解决了我的问题。
2010年

我只是碰到了这个最近发布了错误报告MSFT连接,表达您的投票希望让他们修复它connect.microsoft.com/VisualStudio/feedback/details/626414/...
杰森

Answers:


164

工具+选项,项目和解决方案,构建和运行。“在运行中,当项目已过期时” =始终构建。下一个=不启动。


7
刚刚检查,并将其设置为Always Build ...,所以它不应该这样做。
jamone 2010年

5
在我的机器上工作。过去在您的上工作。接下来是重新启动。
汉斯·帕桑特

3
重新启动并不能解决问题,但是更改了“项目运行时,运行时” =始终构建为不启动保存/退出VS,然后再将其改回已解决。
jamone 2010年

3
那是一个错误。想要将其提交到connect.microsoft.com?
汉斯·帕桑

1
@汉斯:当然,你如何重现这一点?除非它是可复制的,否则说服Microsoft的人们认为这确实是一个问题几乎是不可能的。这仅是有道理的,好像您不可能,那么开发人员就不可能有机会
NotMe 2010年

119

我遇到了这个问题,原来是Configuration Manager。我最近从“调试” |“混合CPU”更改为“调试|任何CPU”,并且未将项目设置为在此配置下构建


这也为我解决了这一问题-似乎是导致该问题的原因。
gstercken

3
大提示!您不会想到的。谢谢
Almund 2011年

1
是的,这为我解决了!只需单击旁边的所有复选框,即可在配置管理器中进行构建。谢谢蒂姆!
chaz 2012年

也为我修复了类似的问题。谢谢!
奥斯汀·汤普森

1
我的问题是选择了错误的配置!我有一个单独的项目,其中每个配置都使用不同的语言,并且组合设置为这些配置之一。刚刚将其更改为Debug_Unicode,现在正在构建中!
sergiol

22

打开配置管理器,并检查是否已选中启动项目的“生成”列中的复选框。我遇到了同样的问题,但是该复选框未处于活动状态,因此我选中了它,现在它可以工作了!


谢谢帮助我。我忽略了该选项。;)
Skalli 2012年

17

除此之外,还请确保未选中“仅构建启动项目和运行依赖项”(在“工具->选项->项目和解决方案->“构建并运行”中)


1
我遇到了问题,这就是解决方案。谢谢。
罗伯托·路易斯·比斯贝

1
这为我修复了它,但似乎是一个错误。有问题的项目是一个依赖项,应该构建。
虚伪的国王(KingOfHypocrites)

如果您有多个启动项目或任何测试项目,那么这是一个令人恐惧的设置,无法检查。
cbp

谢谢!!Microsoft应该重新措词并更改它,这样才有意义。对我不清楚,当检查它意味着做什么。
卡梅伦

10

我也有这个问题。我检查了所有建议都无济于事。事实证明,我的PC上的时钟已经提前了大约12个小时,并且我正在保存到网络驱动器上。文件的时间戳不合时宜,VS认为构建我的项目不需要它,因为文件是最新的。


3

一段时间以来,我一直对为什么我的笔记本电脑(双核2ghz,2Gb ram)比台式机(四核3ghz和16Gb ram)编译我的网站更快感到困惑。两者都有SSD磁盘。所有构建选项均正确设置(相同,核心数量=并行构建),但笔记本电脑在几秒钟内运行了该站点,而dekstop在约30秒内运行了该站点。

在站点的“属性页面”下的“构建”设置下找到一个附加选项,将笔记本电脑设置为“无构建”,将桌面设置为“构建并运行”。仅在网站在便携式计算机上运行之后才找到它,而没有检查编译器错误。

将来可能会帮助某人,所以我想将其添加到这篇文章中


2

解决方案属性页->配置属性->配置下的另一个检查点是:确保在Build Column下的所有复选框都选中了需要重新编译的项目。


1

我尝试了以前的解决方案,但结果好坏参半。但是,每当我去构建->清洁解决方案时,它似乎都对我有用

但是每次都必须这样做很烦人。


1

对我来说,这是由于构建配置设置而发生的。我的Visual Studio解决方案包含多个项目,这些项目是C#和C ++项目的混合。现在,我意识到,出于某些奇怪的原因,Visual Studio不希望默认情况下不构建C ++项目,这在构建配置设置中很明显。我在解决方案中添加了一个新的C ++项目后就注意到了。我不知道为什么在将新的C#项目添加到解决方案时VS不遵循相同的方法。

在解决方案资源管理器中右键单击解决方案文件->在上下文菜单中单击属性->在左窗格中选择配置属性节点->选择配置节点。它显示了解决方案中所有项目的列表。第一个项目LearnDs是一个C ++项目。请注意第一行的“构建”列中的复选框。未选中。这就是为什么Visual Studio 2010不构建我的C ++项目(按F5键)的原因,该项目自上次成功构建以来就进行了一些更改。

在此处输入图片说明

当我选中相应的复选框并保存该解决方案的构建配置设置后,它就开始工作了。现在,每当我按F5键时,都会看到以下提示,因为VS能够检测到自上次构建以来有一些新更改。出现此提示是因为我在“ 工具”菜单->“选项”子菜单->“项目和解决方案”节点->“构建并运行”节点 ->“项目过期时运行”中的设置设置为Prompt to build。如果您不喜欢此提示,请将其设置为Always build

在此处输入图片说明


1

工具->选项->项目和解决方案。

  1. 将“运行时,项目已过时”设置为“始终构建/提示构建”
  2. 取消选中“仅在运行时构建启动项目和依赖项”复选框

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.