相关疑难解决方法(0)

如何减少MSBuild次数

我的情况

在C#项目中我正在研究我们有一个相当大的解决方案(80多个项目).现在重建时间为5分钟+使用Visual Studio 2008中的 MSBuild确实变得非常困难.

在我上周做的分析中,我发现我的构建时间花费如下:

  1. 将文件复制到项目并将其重新复制到依赖于它的项目(CopyToLocal)等(60%)

  2. 调用postbuild进行反编译/编译.(20%)

  3. 进行实际编译等(20%)

除了'普通'项目bin\debug文件夹输出也被复制到外部目录以设置主'加载'程序.主程序结构有点像这样:

\loader\bin\loader.exe

\loader\plugin\plugin1\plugin1.dll

\loader\plugin\plugin1\somedependency.dll
Run Code Online (Sandbox Code Playgroud)

我做了什么

为了让事情变得更快,我想到了以下几点:

  1. 将所有文件复制到一个大bin目录,不要使用CopyTolocal.我不喜欢这个,因为我们不能再使用相同DLL文件的不同版本,而且我的bin目录变得非常混乱.

  2. 对MSBuild使用并行性(/ m).这对构建时间的帮助很小.

  3. 尝试减少项目之间的依赖关系,这当然是一件好事.

  4. 投资硬件.我发现了一些关于固态驱动器的研究,但这似乎并不乐观.

我的问题

我还注意到,当我对依赖树的根目录下的项目进行更改时,所有内容都会重建.即使改变仅在"私人"部分,并且项目的界面没有改变.

MSBuild是否使用依赖项目的时间戳来确定项目是否需要重建?

这可以改为不同的条件吗?例如,文件的校验和?

除了这个特定的建议,我一定会感谢所有建议,以使构建时间更快.

msbuild build-automation build-process build

18
推荐指数
2
解决办法
1万
查看次数

标签 统计

build ×1

build-automation ×1

build-process ×1

msbuild ×1