Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Visual studio 2010 Visual Studio 2010不会重建已更改的代码,除非我手动选择“重建”_Visual Studio 2010_Build - Fatal编程技术网

Visual studio 2010 Visual Studio 2010不会重建已更改的代码,除非我手动选择“重建”

Visual studio 2010 Visual Studio 2010不会重建已更改的代码,除非我手动选择“重建”,visual-studio-2010,build,Visual Studio 2010,Build,在过去一周左右的时间里,我注意到VisualStudio2010没有重新编译代码,除非我强制它。这是一个带有WPF的C4.0项目。如果代码发生了变化,我点击F5,它看起来像是使用了重建,然后启动应用程序。相反,它现在在左下角的状态栏中显示Build Successful并启动应用程序。不过,它实际上并没有重建应用程序。我可以说,因为: 即使我做了大量的更改,它的编译速度也非常快,而且 如果我试图设置一个断点,它会发出警告,说明代码已经更改并且没有更改 设置断点。 无论代码中是否有错误,这种情况都

在过去一周左右的时间里,我注意到VisualStudio2010没有重新编译代码,除非我强制它。这是一个带有WPF的C4.0项目。如果代码发生了变化,我点击F5,它看起来像是使用了重建,然后启动应用程序。相反,它现在在左下角的状态栏中显示Build Successful并启动应用程序。不过,它实际上并没有重建应用程序。我可以说,因为:

即使我做了大量的更改,它的编译速度也非常快,而且 如果我试图设置一个断点,它会发出警告,说明代码已经更改并且没有更改 设置断点。 无论代码中是否有错误,这种情况都会发生,因此我不认为如果构建失败,它会启动旧版本

如果我改为从菜单中选择重建项目,它就会工作。然而,这种情况阻碍了我通常的工作流程。我经常忘记做这件事,然后花10分钟试图找出我的更改到底出了什么问题。更糟糕的是,有时会出现我没有立即注意到的构建错误


按F6键重建解决方案也不会执行任何操作。我可能弄乱了哪些设置会导致这种行为?

Gah,我找到了答案。这是我在一个太晚的夜晚之后,在构建设置上胡闹时做的一件愚蠢的事情。以下是需要检查的事项:

工具>>选项>>项目和解决方案>>生成和运行>>检查是否将“在运行时,当项目过期时”设置为“始终生成”或“提示生成” 构建>>配置管理器>>检查是否已为所有要为每个需要使用的配置构建的项目选中了构建。
此外,如果解决方案中有多个项目,请检查configuration manager。 如果您有一些项目,任何CPU和一些x86都将只构建相同体系结构的项目。
与Debug和Realese config相同。

在2020年出现类似问题,VS 2019社区版和WPF项目未被重建,被视为最新版本,即使参考项目已重建。上面的建议工具->选项和配置管理器在很多地方都有,但对我来说并不适用

最终,更改.csproj文件并在ProertyGroup下添加以下行对我起到了作用:

<DisableFastUpToDateCheck>true</DisableFastUpToDateCheck>

检查以确保您的项目引用确实是项目引用,而不是对其他项目输出的程序集的引用。Hmmm。。。我认为这与我的引用无关,因为即使我在实际启动的项目中更改代码时也会发生这种情况。我认为Visual Studio会以某种方式周期性地破坏此文件,因为在我使用它的过程中,这种情况会不时发生。这非常有用。我在Windows更新后注意到了这一点。同样的问题也影响了我对Visual C 2010 Express的使用。默认情况下,如果Configuration Manager中的项目将任何CPU作为其平台,则构建将默认为不检查。非常感谢!我忘记了构建>>配置管理器>>检查该构建选项并手动重建项目。在你按照预期指导所有工作之后!也看到这个答案,这是不准确的。准确地说,解决方案具有配置。一种配置是主动配置;这将控制构建的内容。每个项目也有配置。解决方案配置可以包含项目配置的任何组合/设置。按照惯例,您通常会将项目配置命名为与解决方案配置相同的名称,但这不是必需的,VisualStudio也不关心这些配置名称是否匹配。您需要验证的是,您已经选择了要构建的项目配置和平台。。。。也就是说,VS将只生成每个项目的一个版本,即在活动配置中为该项目选择的版本。这些可能都是相同的,例如Debug+x64,但它们可能不同。例如,您可能有一个x64解决方案配置,可以为某些类库构建任何CPU,但为其他类库和main.exe构建x64。@ToolmakerSteve谢谢您提供的信息。一些例子会有所帮助。@Pierre-见第6页之后。选择OK按钮,这是configuration manager窗口的屏幕截图。在右上角,活动解决方案平台为x64。中间,Expenseintros平台是x64。这是默认设置。但不一定要这样;通过将平台下拉列表更改为任何CPU,您可以将Expenseintro构建为x64配置的任何CPU。请参阅以获取解释。@Pierre。。。实际上,我给出的stackoverflow链接解释了如果您的整个应用程序是任何CPU,会发生什么。将单个项目绑定到X64应用程序中,而将任何CPU绑定到该应用程序中则是不同的。在这种情况下,这意味着该项目的CLR代码可以是32位或64位的JIT代码,而没有任何问题。因此,您可以构建该项目一次,并在这两种情况下使用它 -位和64位应用程序。[这是一个不寻常的场景;通常在为x64构建时,您会将所有项目设置为x64。我只是评论说,如果某些项目是任何CPU,那么user3585447是错误的。]