Visual Studio 2005:跳过构建的原因未知?

5

我有一个Visual Studio解决方案,其中包含多个项目。配置管理器已经仔细配置,可以构建除一个测试项目之外的所有项目。在命令行中构建解决方案后,我得到以下输出:

"building XXX Debug|x64"

------ Skipped Build: Project: AAA ------

------ Skipped Build: Project: BBB, Configuration: Debug Win32 ------

此解决方案配置未选择构建该项目。

------ Build started: Project: CCC, Configuration: YYY Debug ia64 ------

< 这里是构建过程 >

可以看到,BBB项目被跳过,因为它在配置管理器中未被选中,CCC项目和其余项目都能够正常构建,但AAA项目却被无缘无故地跳过了。有人知道为什么Visual Studio会在没有任何原因的情况下跳过项目构建吗?所有配置名称(XXX、YYY Debug、Debug)和平台(x64 / Win32 / ia64)都在配置管理器中正确配置。


3个回答

3

项目AAA被选择为Debug|x64配置吗?

当我下载没有.soa文件的解决方案时,也遇到了相同的情况,它默认配置为Itanium,因此所有不支持Itanium的系统都会跳过所有解决方案项目进行构建。只有手动选择win32后才能正确构建。


是的,在“Debug|x64”中选择了AAA来构建“AAA Debug|ia64”。它在IDE内部完美地构建。 - grigoryvp
好的。您如何使用命令行编译解决方案?使用 devenv.exe /.. 还是 msbuild.exe /..? - abatishchev
devenv.exe是与vs2005捆绑在一起的。 - grigoryvp
1
devenv是VS2005的开发环境 :) 使用msbuild!这是微软提供的适当批处理构建工具。它是免费且得到最广泛的支持。使用devenv不是一个好主意,也不是最佳实践,不是专业人士应该做的事情。 - abatishchev

0

使用MSBUILD.exe从命令行运行项目,并设置日志参数(详细程度)=详细或诊断。然后,您应该获得更多输出,告诉您为什么msbuild考虑跳过问题中的一个。例如:

msbuild XXXX.csproj /verbosity:detailed

Nb. 诊断输出非常冗长。


很不幸,由于公司政策的限制,我只能使用devenv.exe。它没有/verbosity命令行键 :( - grigoryvp
1
设置环境变量:verbosity=diag - Preet Sangha

0

Visual Studio中的普通构建是增量式的:如果它认为没有更改源文件,它将跳过构建项目-请注意,它仅检查代码文件,而不是资源或其他“东西”。

尝试通过选择Build|Clean Solution然后Build|Rebuild Solution进行清理构建,并查看是否获得相同的结果。

您可能需要手动清理每个项目的构建工件(默认情况下,每个项目目录中的\Bin\\Obj\子目录)。


我正在使用 /clean 和 /build 命令。 构建过程很简单:首先创建一个临时文件夹,然后从源代码控制中获取最新版本的解决方案和项目,进行构建操作,最后删除临时文件夹。没有任何中间产物、缓存等会被保留下来。 - grigoryvp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接