我正在尝试通过只编译共享项目一次来加速一组解决方案的编译。这是我的问题的简化描述。
我有两个解决方案——one.sln和two.sln。它们都包括共享项目shared.csproj。我在Visual Studio中打开这两个解决方案,清理它们,然后构建one.sln,再构建two.sln。当构建two.sln时,不会重新生成shared.dll,这是我期望的行为。
为了自动化此过程,我创建了一个msbuild .proj文件(如下所示)。当我在.proj文件上调用msbuild时,shared.dll将为BOTH解决方案重新编译。我做错了什么?
我有两个解决方案——one.sln和two.sln。它们都包括共享项目shared.csproj。我在Visual Studio中打开这两个解决方案,清理它们,然后构建one.sln,再构建two.sln。当构建two.sln时,不会重新生成shared.dll,这是我期望的行为。
为了自动化此过程,我创建了一个msbuild .proj文件(如下所示)。当我在.proj文件上调用msbuild时,shared.dll将为BOTH解决方案重新编译。我做错了什么?
<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>