2

默认情况下,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为每个项目引用设置?

4

1 回答 1

2

我能想到的一件事是将项目彼此分开,即:如果您更改(并编译)一个项目,它不会立即破坏尚未正确更新以处理更改的其他项目。

如果所有内容都在一个文件夹中,则上述情况可能会导致不必要的麻烦(直到您重建整个解决方案)。

于 2012-04-10T10:24:54.940 回答