此示例似乎適用於我。 TestLib.Extra依賴於TestLib。如果我在TestLib中更改了某些內容,那麼這兩個項目都將生成。如果我僅在TestLib.Extra中進行更改,那麼只會生成一個,如果我根本沒有更改任何內容,他們只會報告跳過目標「CoreCompile」,因爲所有輸出文件都是最新的等等。
<Target Name="Build">
<MSBuild Targets="Build" Projects="TestLib\TestLib.csproj" />
<MSBuild Targets="Build" Projects="TestLib.Extra\TestLib.Extra.csproj" />
</Target>
訣竅是使用項目的「建設」的目標,而不是「重建」。它們之間的區別基本上與Visual Studio中構建菜單中的「Build」和「Rebuild」命令之間的區別相同。
編輯
這也是行之有效的,如果項目被列入解決方案文件,以及您指定的方案,以建立相反:
<Target Name="Build">
<MSBuild Targets="Build" Projects="TestLib.sln" />
</Target>
您使用什麼工具構建您的構建機器?你可以手動控制構建順序嗎? – dss539 2009-06-08 16:27:19
我有一個msbuild的配置文件,它指定了SolutionToBuild ...其他一些東西,但沒有特定的構建順序。 – 2009-06-08 17:24:02
可能是你正在重建服務器上,並只建立在我們的機器上 – Uday 2009-07-15 12:33:59