用于 Web 项目的 Team Foundation Build 的疑难解答

更新:2007 年 11 月

以下部分描述在使用 Team Foundation Build 生成 Web 项目时可能遇到的常见故障的疑难解答。

Web 项目未生成

在 Visual Studio 中,对于仅生成 Web 项目,生成配置必须设置为“.NET”,而对于生成 Web 项目和其他托管项目的组合,则必须设置为“混合平台”。

如果指定了错误的生成配置,则下面的警告将记录在生成日志文件中:

Warning MSB4126: The specified solution configuration "Release|Any CPU" is invalid. Specify a valid solution configuration using the Configuration and Platform properties (e.g, MSBuild.exe Solution.sln /p:Configuration=Debug /p:Platform="Any CPU") or leave those properties blank to use the default solution configuration.

解决方案

根据您的生成定义将配置更改为“混合平台”或“.NET”。或者,在创建新的 TFSBuld.proj 文件时,在“MSBuild 项目文件创建向导”的“选择要生成的配置”页上选择“.NET”或“混合平台”作为配置。有关更多信息,请参见如何:创建生成定义

目录结构冲突

默认情况下,当您在 Visual Studio 中创建 Web 项目时,解决方案文件和网站文件存储在两个不同的位置中。对于 Web 项目“SampleWS”,解决方案文件保存在以下目录中:

  • <根目录>:\Documents and Settings\用户\My Documents\Visual Studio 2008\Projects\SampleWS

网站文件保存在以下目录:

  • <root>:\Documents and Settings\用户\My Documents\Visual Studio 2008\Websites\SampleWS

Web 项目解决方案文件包含 PhysicalPath 属性,该属性指向用来查找该文件以进行编译的网站文件夹。但是,在将 Web 项目解决方案签入到源代码管理中时,解决方案文件将存储在根文件夹中,而网站存储在下一级子文件夹中。此操作会造成受源代码管理控制的解决方案文件中的 PhysicalPath 属性受到损坏。生成期间,Team Foundation Build 将使用版本控制文件夹结构来同步 Web 项目文件。由于版本控制中的目录结构与解决方案文件夹结构不同,因此会导致编译错误。

如果解决方案文件中和源代码管理中的目录结构冲突,则下面的错误会记录在生成日志文件中:

ASPNETCOMPILER(0,0): 错误 1003: 目录“d:\<生成目录>\MyTeamProject\SampleWS\WebSites\SampleWS\”不存在。

解决方案

  • 在 Visual Studio 中创建一个空的解决方案,然后在与该解决方案相同的位置中创建网站。

  • 将解决方案文件中的属性 Debug.AspNetCompiler.PhysicalPath 和 Release.AspNetCompiler.PhysicalPath 修改为指向受源代码管理控制的网站文件夹。

请参见

其他资源

管理 Team Foundation Build

Team Foundation Build 疑难解答

使用 Team Foundation Build 管理生成