我在Visual Studio中拥有中等大小的解决方案,需要大约5分钟才能构建(由于FxCop和其他后期构建步骤需要很长时间)。 我的问题是,Visual Studio在构建时停止响应。你不能继续工作,因为VS几乎挂起。我尝试使用两个VS实例,只使用一个用于构建,但它时不时地崩溃。
我的问题是,如何不浪费时间看Visual Studio构建您的大/中等项目。对此有什么最佳做法吗?
答案 0 :(得分:37)
答案 1 :(得分:7)
我刚刚学到的两个优秀的MSBuild技巧......
您可以使用/ m:n开关并行运行任务,其中n是要使用的处理器数。您所要做的就是在MSBuild任务上设置BuildInParallel。
另一个技巧是如果你有几个< exec />通过调用< exec command =“sleep 10 | sleep 10 | sleep 20”/>来运行你的任务实际上也可以并行运行它们。通过使用每个命令之间的管道字符。一个更实际的例子:
<CreateItem Include="server1;server2;server3;server2">
<Output ItemName="IISServer" TaskParameter="Include"/>
</CreateItem>
<CreateProperty Value="@(IISServer->'iisreset.exe /start %(Identity)', '|')">
<Output TaskParameter="Value" PropertyName="IISServerStartAll" />
</CreateProperty>
<exec command="$(IISServerStartAll)" />
答案 2 :(得分:5)
您实施了哪些其他制作后任务?
答案 3 :(得分:1)
如果您有多台计算机或将此程序设置为其他工作的朋友,请使用Incredibuild。 它易于设置和使用。 加速是线性的编译。
它对多核cpu也有好处,因为通常vs一个核心用于一个项目,但是incredibuild使它与每个.cpp文件并行...
试试看..:)
答案 4 :(得分:0)
您可以考虑使用MSBuild的专用构建计算机。从那里,你可以在编译时继续工作。但是,当你引入网络问题时,它确实会使它变得更加复杂。
答案 5 :(得分:-1)
您可以通过存根编译代码所需的类来在另一个项目中创建类。这样,您就可以测试和记录新代码。在此之后,您只需将其包含在实际项目中,然后编译“for real”。当它编译时,你已经在处理该项目的另一个片段,因为它是95%它将成功编译。或者,在编译时,您也可以编写单元测试..