我正在使用Visual Studio 2017创建解决方案。在此解决方案中,我有几个子文件夹,每个子文件夹都包含解决方案的不同组件的源代码。
主要解决方案基本上包含一个预处理器,它根据提供的文件参数调用所需的组件。
foreach (string arg in args)
{
switch (arg)
{
case "ASN":
ASNComponent.EntryPoint.Run();
break;
case "INV":
INVComponent.EntryPoint.Run();
break;
case "ORD":
ORDComponent.EntryPoint.Run();
break;
default:
throw new Exception("The specified component doesn't exist");
}
}
解决方案的结构如下:
MainSolution
|__ App.config
|__ Program.cs
|
|__ ASNComponent
| |__ EntryPoint.cs
| |__ Other files
|
|__ INVComponent
| |__ EntryPoint.cs
| |__ Other files
|
|__ ORDComponent
|__ EntryPoint.cs
|__ Other files
目前,解决方案只包含一个项目,每个组件都存储在自己的子文件夹中,并使用自己的命名空间,然后由MainSolution
包含using
指令。
使用其他项目而不仅仅是ASNComponent
,INVComponent
和ORDComponent
的子文件夹有什么好处?功能上它甚至会产生影响吗?
答案 0 :(得分:1)
使用项目可以在解决方案管理方面为您提供更高级别的粒度。例如,每个项目都可以有自己的引用,因此如果不同的项目需要不同的项目,则不必为每个项目包含每个程序集。此外,您可以为解决方案中的每个项目选择不同的项目类型,因此,如果您正在编写足够复杂的内容以使用多种语言,则可以在构建解决方案时构建所有内容。此外,每个项目都可以有一个单独的构建目录。我确信还有更多关于使用项目的好处的例子,这些只是为了证明我的观点。
根据您提供的代码,看起来文件夹符合您的需求,因为您尝试在单个交换机的情况下组织执行的代码,而不是说创建产品,并构建该产品的WiX安装程序。这将是一个解决方案中两个组件的例子,这些组件可以保证他们自己的项目。