默认情况下,Visual Studio(2010 和 11 beta)将解决方案中的每个项目构建到单独的文件夹中。结果,特别是如果项目相互引用,它们会在 build 期间被大量复制(CopyLocal = true)
:
-- solution has four projects: proj1, proj2, proj3 and proj4
-- building proj1 --
solution/proj1/bin/debug/proj1.dll
-- building proj2 (depends on proj1) --
solution/proj2/bin/debug/proj1.dll
solution/proj2/bin/debug/proj2.dll
-- building proj3 (depends on proj1) --
solution/proj3/bin/debug/proj1.dll
solution/proj3/bin/debug/proj3.dll
-- building proj4 (depends on proj2 and proj3) --
solution/proj4/bin/debug/proj1.dll
solution/proj4/bin/debug/proj2.dll
solution/proj4/bin/debug/proj3.dll
solution/proj4/bin/debug/proj4.dll
由于我当前的解决方案有 90 个项目,其中大多数项目至少有一些相互引用(只有 3 个是实际的可执行文件),这很烦人,我一直想知道为什么默认情况下 Visual Studio 不只是把每个项目输出都在同一个文件夹中,而是导致这种可怕的冗余。我知道我可以更改输出文件夹并关闭引用项目的复制,但我想知道默认行为背后是否有原因。
默认情况下,VS2005 确实将所有内容放在一个文件夹中(不确定 2008 年),但这有什么实际的缺点吗?另外,在 VS10(可能是 VS Addon)中有没有办法将所有项目的输出文件夹设置为同一个文件夹,以及CopyLocal = false
为每个项目引用设置?