2011-11-11 105 views
1

(從來就更新了標題,以反映我的新發現)Team Foundation Server的2010 - 構建配置沒有爲項目

我剛剛移植了一堆項目從TFS2008到TFS2010和已經運行到(實際上是幾個:))問題與一個特定的項目。使用構建配置「調試」編譯時,一切都按預期工作。然而,當使用構建配置'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文件夾,當我在發佈配置下構建。我檢查瞭解決方案和項目配置,並且在發佈解決方案配置下沒有「調試」配置。任何想法,爲什麼發生這種情況,以及如何解決它?

在此先感謝。

!!獎金信息

我在項目文件中有以下聲明失敗,確保如果生成配置未指定,它將被設置爲調試。

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

我試圖改變它發佈爲默認,現在我的團隊調試構建失敗,在OBJ \發佈指向代替。所以在編譯項目時,似乎沒有指定構建配置。怎麼會這樣?

回答

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" /> 
相關問題