作为软件开发人员,复制粘贴一些代码或一些文件并将其放在多个地方总是很臭。有几种不同的途径可以避免这种冗余,但这篇文章将重点关注一个似乎不常被谈论的途径:共享项目。
通过链接避免冗余
在介绍共享项目之前,我将简要介绍为什么要引入共享项目本身,以及在它们发布之前您是如何完成类似行为的。
随着Visual Studio在过去几年中提出的跨平台的主要倡议,出现了一个问题,即如何组织可以跨多个平台访问的代码,而不只是疯狂地进行复制粘贴。对此的答案是传说中的“添加为链接”选项:

您只需单击一个项目,选择“添加现有文件”选项,然后选择对话框中出现的“添加为链接”选项。这将创建一个指向原始文件的指针,该指针将出现在两个项目中。
这个问题——太乏味了。你一次只能选择一个文件,想象一下,如果你必须在多个平台上引用多个文件?一想到这就足以让你的手腕感到刺痛。
只需要有一个更好的方法,以及拟议的解决方案:共享项目。
什么是共享项目?
共享项目的概念是在Visual Studio 2013 RC 2中引入的,简而言之,它允许您引用整个项目,而不是像使用类库那样只引用一个程序集。

现在这是怎么工作的?一个项目中包含了我可能不想使用的所有类型的东西?如何处理共享项目中的引用?那些东西呢?
需要注意的是,术语“共享项目”也可以是“共享代码桶”,因为它更像是一个占位符项目,您可以将所有代码和其他文件(如资源)存储在其中。在编译时,任何引用此共享项目的项目都会将所有文件(包括文件夹结构等)合并到其中,然后进行编译,或者换句话说:
共享项目不会单独编译,而是将项目中的代码合并到引用它的每个程序集中,并在其中进行编译。
现在您已经对什么是共享项目有了一个相当不错的想法,让我们看看如何在应用程序中使用它。
使用共享项目
共享项目和其他任何文件或文件夹一样容易创建,通常只需要点击几下即可启动和运行。
要将共享项目添加到现有解决方案中,请右键单击该解决方案并选择“添加项目”,然后从Visual C#选项卡中选择“共享项目”:

您将看到共享项目出现在解决方案资源管理器中,从这一点开始,您可以开始向其中添加要使用的任何类型的文件。在本例中,我们将创建一个类,该类将公开我们希望在其他两个项目中可访问的函数。
对于这个例子,我们将创建一个新文件,尝试添加,但不是很好:

接下来,我们将希望在另一个项目中添加对此的引用。这与您过去习惯于添加引用的方式类似。右键单击要在其中使用共享项目的项目,选择“添加引用”,然后在左侧显示的“共享项目”选项卡下选择共享项目:
