我有我試圖在執行的MSBuild構建目標。目標有一些輸入和輸出,我已經放在那裏以加快中間構建的時間。輸入文件總是存在(頭文件),另一方面,輸出並不總是存在(XML文件)。的MSBuild:目標輸入和輸出失敗在第一次執行
那可能會跳過任務的中間生成是非常可取的,因爲它是在性能方面相當昂貴的。
反正,輸入和輸出工作很好如果輸出已經存在。在這種情況下,MSBuild會發出非常有用的消息,說明由於所有文件都是最新的,因此目標被跳過。
這是當輸出目錄和文件不存在(此任務運行的第一個時間)的MSBuild失敗,出現以下消息的情況下:
跳過target [目標],因爲它沒有輸出。
添加詳細的詳細信息告訴我,原因是因爲@(OutputXML)項是空的。好吧,現在呢?因此,似乎並不像MSBuild中的中級構建的整個概念非常強大。
我的問題是,我怎麼能得到一箇中間構造的利益,仍然有當沒有輸出這一目標的執行? (我希望我沒有訴諸寫我自己的任務擴展)
這裏是我的構建腳本的相關部分:
<ItemGroup>
<Headers Include="..\**\*.h" />
<OutputXML Include="$(OutputDir)\*.xml" />
</ItemGroup>
<Target Name="Doxygen"
Inputs="@(Headers)"
Outputs="@(OutputXML)" >
<Exec ... />
</Target>
注: 我一直都對谷歌,msdn和這個網站試圖找到答案,迄今爲止一直不成功。儘管我一般都會發現關於MSBuild的非常有用的信息。
嗨克里斯,無關此帖。我正在與您聯繫以獲得MSBuild的一些幫助。我是MsBuild的新手,並且希望能夠即時生成解決方案文件。我在下面的SO帖子中注意到你提到你有類似的解決方案。你能和我分享嗎?謝謝。 http://stackoverflow.com/questions/13300294/can-i-use-msbuild-scripts-to-replace-sln-files – user559788 2014-05-15 00:38:42