强制Visual Studio在“开始调试”时重建

时间:2016-03-14 19:30:44

标签: visual-studio build

与{{3}}

相比,这是非常不同的

问题是我修改了一个未引用项目的csproj(因为它是运行时依赖项)。

例如,在我的csproj文件中,我有:

app.get('API/getRandomWord', function(req, res) {

在我的<Import Project=".\UnreferencedProjects-Developer.targets" /> 文件中,我有:

.targets

问题是<?xml version="1.0" encoding="utf-8"?> <Project ToolsVersion="3.5" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Target Name="BuildDependencyForDevelopers" AfterTargets="Build"> <Message Text="========================================" /> <Message Text="Developer Building Unreferenced Projects" /> <Message Text="========================================" /> <!--MSBuild Projects="$(ProjectToBuild)"--> <MSBuild Projects="../OtherProject/OtherProject.csproj"> <Output ItemName="ProjectOutputs" TaskParameter="TargetOutputs"/> </MSBuild> <Message Text="@(ProjectOutputs)"/> <Message Text="=======================================" /> <Message Text="Developer Copying Unreferenced Projects" /> <Message Text="=======================================" /> <Copy SourceFiles="$(ProjectDir)\..\OtherProject\bin\$(Configuration)\OtherProject.dll" DestinationFolder="$(OutDir)" ContinueOnError="true"/> <Copy SourceFiles="$(ProjectDir)\..\OtherProject\bin\$(Configuration)\OtherProject.pdb" DestinationFolder="$(OutDir)" ContinueOnError="true"/> <Message Text="=============================================" /> <Message Text="Developer Finished with Unreferenced Projects" /> <Message Text="=============================================" /> </Target> </Project> 文件似乎只在手动构建/重建时执行,而不是在启动调试上执行。

所有配置都设置为Build。选项 - &gt;项目和解决方案 - &gt;构建和运行 - &gt;在运行时,当项目过期时:始终构建。

我认为问题在于,因为项目未被引用,所以当我开始调试时,没有过时的项目,所以它在没有构建/重建的情况下启动。如何强制它始终(重新)构建

1 个答案:

答案 0 :(得分:4)

添加到项目中:

<PropertyGroup><DisableFastUpToDateCheck>true</DisableFastUpToDateCheck></PropertyGroup>

这里的关键字是“快速更新检查”:Visual Studio在您调试时使用它以避免启动msbuild。

相关主题:MSBuild Target that always runs when clicking build in VS2013

背景信息:https://msdn.microsoft.com/library/ms171468%28v=vs.110%29.aspx

  

如果您在Visual Studio UI中开始调试(通过选择F5键或选择Debug,在菜单栏上启动调试),构建过程将使用快速更新检查来提高性能。在某些情况下,自定义构建会创建依次构建的文件,快速更新检查无法正确识别已更改的文件。需要更彻底更新检查的项目可以通过设置环境变量DISABLEFASTUPTODATECHECK = 1来关闭快速检查。或者,项目可以将其设置为项目中或项目导入的文件中的MSBuild属性。