Sto cercando di accelerare la compilazione di un set di soluzioni compilando solo una volta i progetti condivisi. Questa è una descrizione semplificata del mio problema.Perché MSBuild sta ricostruendo progetti condivisi?
Ho due soluzioni: uno.sln e due.sln. Entrambi includono il progetto condiviso shared.csproj. Apro le due soluzioni in Visual Studio, pulisco entrambe, quindi costruisco one.sln, quindi creo two.sln. Quando due.sln è compilato, shared.dll NON viene rigenerato, che è il comportamento che mi aspetto.
Per automatizzare questo processo, ho creato un file .proj di msbuild (sotto). Quando chiamo msbuild sul file .proj, shared.dll viene ricompilato per le soluzioni BOTH. Che cosa sto facendo di sbagliato?
<Project ToolsVersion="4.0"
xmlns="http://schemas.microsoft.com/developer/msbuild/2003"
DefaultTargets="Build">
<ItemGroup>
<Solution Include="C:\one.sln"/>
<Solution Include="C:\two.sln"/>
</ItemGroup>
<Target Name="Build">
<MSBuild Projects="@(Solution)" Targets="Build" RunEachTargetSeparately="false" StopOnFirstFailure="true" />
</Target>
</Project>