我们有类似的问题,因为我们有109个单独的项目要处理。根据我们的经验回答原始问题:
1.您如何最好地处理项目之间的引用
我们使用“添加参考”上下文菜单选项。如果选择“项目”,则默认情况下将依赖项添加到我们的单个全局解决方案文件中。
2.应该打开还是关闭“本地复制”?
根据我们的经验。额外的复制只会增加构建时间。
3.应该将每个项目都构建到其自己的文件夹,还是将它们都构建到相同的输出文件夹(它们都属于同一应用程序)
我们所有的输出都放在一个名为“ bin”的文件夹中。想法是该文件夹与部署软件时的文件夹相同。这有助于防止开发人员设置与部署设置不同时发生的问题。
4.解决方案文件夹是组织资料的好方法吗?
根据我们的经验,没有。一个人的文件夹结构是另一个噩梦。深度嵌套的文件夹只会增加查找任何内容的时间。我们拥有一个完全平面的结构,但是将我们的项目文件,程序集和名称空间命名为相同的名称。
我们构建项目的方式依赖于单个解决方案文件。即使项目本身没有更改,构建它也需要很长时间。为了解决这个问题,我们通常创建另一个“当前工作集”解决方案文件。我们正在处理的所有项目都将添加到该项目中。虽然我们已经看到的一个问题是,对于不在当前集合中的项目中定义的类型,Intellisense会失败,但是构建时间大大缩短了。
我们的解决方案布局的部分示例:
\bin
OurStuff.SLN
OurStuff.App.Administrator
OurStuff.App.Common
OurStuff.App.Installer.Database
OurStuff.App.MediaPlayer
OurStuff.App.Operator
OurStuff.App.Service.Gateway
OurStuff.App.Service.CollectionStation
OurStuff.App.ServiceLocalLauncher
OurStuff.App.StackTester
OurStuff.Auditing
OurStuff.Data
OurStuff.Database
OurStuff.Database.Constants
OurStuff.Database.ObjectModel
OurStuff.Device
OurStuff.Device.Messaging
OurStuff.Diagnostics
...
[etc]