Team Foundation Server 2010 - 未为项目设置的构建配置

时间:2011-11-11 13:12:09

标签: msbuild tfs2010

(我已更新标题,以反映我的新发现)

我刚刚将一系列项目从TFS2008移植到TFS2010,并遇到了一个特定项目的问题(实际上有几个:)。使用构建配置“Debug”进行编译时,一切都按预期工作。但是,在使用构建配置'Release'进行编译时,由于al.exe无法在'obj \ debug'中找到指定的文件,因此会出现链接器错误。

错误:

Task "AL" (TaskId:781)
...
ALINK : error AL1047: Error importing file 'c:\Builds\23\...\obj\Debug\someproject.exe' -- The system cannot find the file specified. [C:\Builds\23\...\Release\Sources\...\someproject.csproj]
  The command exited with code 1. (TaskId:781)
Done executing task "AL" -- FAILED. (TaskId:781)

我已启用团队构建信息诊断日志记录,并找到以下变量:

IntermediateOutputPath = obj\Debug\

我的问题是,当我在发布配置下构建时,链接器为什么会在Debug文件夹中查找。我已经检查了解决方案和项目配置,并且在发布解决方案配置下没有“调试”配置。任何想法为什么会发生这种情况以及如何解决它?

提前致谢。

!!奖金信息

我在项目文件中有以下语句失败,确保如果未指定构建配置,它将被设置为Debug。

<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>

我尝试将其更改为默认版本,现在我的调试团队构建失败,而是指向obj \ release。因此,在编译项目时,似乎未指定构建配置。怎么会这样?

1 个答案:

答案 0 :(得分:1)

发现问题。我必须为someproject.csproj项目文件中定义的发布目标显式设置构建配置。我插入了'Configuration = Release'这一行

    <MSBuild ToolsVersion="3.5" Projects="$(SolutionRoot)\...someproject.csproj"
             Properties="RunCodeAnalysis=false;
                             Configuration=Release;
                             ClrVersion=2.0.50727.0;
             ApplicationVersion=$(VersionNumber);
             UpdateUrl=$(DevtestUpdateUrl);
             InstallUrl=$(DevtestInstallUrl);
             IsWebBootstrapper=true;
             PublishDir=$(DropLocation)\$(BuildNumber)\Publish\Update\;
             SolutionDir=$(SolutionRoot)\Kl******\;
             DeploymentConfiguration=devtest;
             SignManifests=true;
                        ManifestCertificateThumbprint=23...23;"
             Targets="PublishOnly" />