2011-03-16 62 views
0

我們剛剛開始在構建系統上發出警告,最終導致構建失敗。如果我構建在VS2005 IDE中,構建工作正常。ResolveVCProjectOutput failure

的錯誤似乎歸結爲以下錯誤:

Task "ResolveVCProjectOutput" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).

我試圖建立在釋放模式,但似乎ResolveVCProjectOutput只能處理調試模式。

我在使用msbuild在VS2005的64位機器上構建Win32。

如果它是相關的,這裏更多的是構建輸出的位:

Task "Delete"
Deleting file "D:\Farm\MSVC80\Builds\RetargetingPluginsDeploymentWindows\RetargetingPlugins\Install\XSIRetargetInstallerWindows\XSIRetargetInstallerWindows.tmp_Release_Win32.vcproj".
Command:
del "D:\Farm\MSVC80\Builds\RetargetingPluginsDeploymentWindows\RetargetingPlugins\Install\XSIRetargetInstallerWindows\XSIRetargetInstallerWindows.tmp_Release_Win32.vcproj"
Done executing task "Delete".
Done building target "XSIRetargetInstallerWindows" in project "Slave.sln".
Target "MotionBuilderRetargetInstallerWindows" skipped. Previously built successfully.
Target "MayaRetargetInstallerWindows" skipped. Previously built successfully.
Target "MaxRetargetInstaller" skipped. Previously built successfully.
Target "RetargetingPluginsDeploymentWindows" in file "D:\Farm\MSVC80\Builds\RetargetingPluginsDeploymentWindows\Slave.sln":
Task "ResolveVCProjectOutput" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).
Task "CreateItem"
Done executing task "CreateItem".
Task "ResolveVCProjectOutput" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).
Task "CreateItem"
Done executing task "CreateItem".
Task "ResolveVCProjectOutput" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).
Task "CreateItem"
Done executing task "CreateItem".
Task "ResolveVCProjectOutput" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).
Task "CreateItem"
Done executing task "CreateItem".
Task "CreateTemporaryVCProject" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).
Task "VCBuild" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).
Task "Delete" skipped, due to false condition; (('$(Configuration)' == 'Debug') and ('$(Platform)' == 'Win32')) was evaluated as (('Release' == 'Debug') and ('Win32' == 'Win32')).
Task "ResolveVCProjectOutput"
Resolving VC project reference "D:\Farm\MSVC80\Builds\RetargetingPluginsDeploymentWindows\RetargetingPlugins\Install\XSIRetargetInstallerWindows\XSIRetargetInstallerWindows.vcproj".
D:\Farm\MSVC80\Builds\RetargetingPluginsDeploymentWindows\Slave.sln : warning MSB3422: Failed to retrieve VC project information through the VC project engine object model. Unable to determine default tool for the specified file configuration.
D:\Farm\MSVC80\Builds\RetargetingPluginsDeploymentWindows\Slave.sln : warning MSB3425: Could not resolve VC project reference "D:\Farm\MSVC80\Builds\RetargetingPluginsDeploymentWindows\RetargetingPlugins\Install\XSIRetargetInstallerWindows\XSIRetargetInstallerWindows.vcproj".
Done executing task "ResolveVCProjectOutput".

+0

您是否考慮過使用屬性表來定義構建輸出和項目目錄?你也可以通過命令行通過調用devenv.exe來構建視覺工作室,這是我在我的各種C++解決方案和安裝的C#構建程序的自動構建中最終使用的。 – AJG85 2011-03-16 17:55:01

+0

神祕,該目標沒有檢查$(配置)的條件。有人在該機器上編輯Microsoft.Common.targets? – 2011-03-16 18:25:18

回答

0

我建2010年之前VS VC++項目時,有一個神祕類似的問題,什麼情況是,vcbuild.exe (即使從msbuild構建.vcproj文件時最終也會使用它)解析項目文件並凍結第一個找到的$(Configuration)的值。包含$(Configuration)的任何其他字符串的評估將始終評估爲第一個,通常是「調試」。對於引用,如果您在執行乾淨的發佈版本,「調試」文件夾中的引用項目將不存在。如果你正在做一個「骯髒」的構建,它們可能存在,並且這有時會顯示工作,但可能會導致過時的問題。

該解決方案非常討厭,基本上是由控制的MSBuild項目驅動的自定義構建任務,該項目製作了.vcproj文件的副本,然後剝離了未構建的配置,然後構建了臨時剝離的項目而不是原來的。這是要麼或必須保持兩個單獨的項目文件同步爲每個項目,我們有數百個。

作爲一個實驗,重做一些項目文件(以及它們引用的任何文件等),以便首先出現「發佈」配置並查看是否獲得不同的行爲。

+0

似乎我們在設置配置名稱時遇到了問題。我不記得我們做錯了什麼,但是它需要一些額外的空間或在Win32中有額外的空間。 – Liron 2012-02-23 11:25:15

0

我在顛覆合併過程中對項目和解決方案文件進行了手動修改後遇到了類似的情況。解決方案文件可能真的很神祕,而且人工編輯很容易出錯。無論如何,在合併之後,構建系統顯然不喜歡與它們相關的一些項目或GUID並失敗。

我所做的解決問題的方法是使用項目嚮導(Add New Project ...)在IDE中重新創建衝突項目。之後,警告消失了。

0

我也有這個問題(MSB3422和MSB3425)運行VS2008和解決方案是重新創建受影響的項目從頭開始使用VS2008 IDE。

相關問題