由于我使用的是Visual Studio 2019,因此即使没有任何更改,我每次都会重新构建一些旧项目。构建输出状态如下:
最新检查:项目:.. \ MyProject.vcxproj,配置:调试Win32
项目不是最新的:缺少构建输出'd:\ mysolution \ myproject \ debug \'
提到的输出目录确实存在,但大小写( D:\ MySolution \ MyProject \ Debug )
MSBuild在Visual Studio 2017中构建相同的项目,可以正确检测什么都没有更改:
最新检查:项目:MyProject,配置:调试Win32
所有输出都是最新的。
有问题的项目是托管的C ++项目,配置的平台工具集是“ Visual Studio 2013(v12)”。
答案 0 :(得分:0)
尝试:
请参阅此similar issue。
如果问题仍然存在,请检查是否已将输出路径设置为绝对路径。默认情况下,始终将输出目录设置为相对路径:
更新:
现在我想我已经找到了问题的原因,您的项目文件中的一些错误使构建过程变得混乱。
请检查以下内容:
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ClCompile>
...
<ProgramDataBaseFileName>$(Configuration)\</ProgramDataBaseFileName>
<!--<ProgramDataBaseFileName>$(Configuration)\$(TargetName).pdb</ProgramDataBaseFileName>-->
<CompileAsManaged>true</CompileAsManaged>
<PrecompiledHeaderFile />
</ClCompile>
ProgramDataBaseFileName的值为$(Configuration)\
,即debug\
。因此,构建过程认为存在名为debug\
的构建输出文件,但实际上不存在。然后最新检查无法正常工作!
以下是解决方法:
因此,您可以注释该语句,或者给它正确的值,例如$(Configuration)\$(TargetName).pdb
而不是$(Configuration)\
,后者不是文件路径。
<!--<ProgramDataBaseFileName>$(Configuration)\</ProgramDataBaseFileName>-->
或<ProgramDataBaseFileName>$(Configuration)\$(TargetName).pdb</ProgramDataBaseFileName>
可以解决此问题。
注意:由于ProgramDataBaseFileName
同时存在于Debug | win32和Release | win32的ItemDefinitionGroup中,因此您应该在.vcxproj文件的两个位置中更正该值。