在多个项目之间共享 C# 类源代码

问题描述 投票:0回答:8

我编写了一个类来处理我的应用程序中的内部日志记录。 现在我想在另一个新的、完全独立的项目中使用这个类。

我可以简单地将文件复制到新的项目文件夹,但我只想维护它的一份副本,以便随着时间的推移,其中的所有更改都将应用到两个项目。

我可以使用“添加现有文件”,但是我该将文件放在哪里,以便下一个开发人员知道它是必需的。我曾经有一个“共享”文件夹,但有一次该文件夹没有被带入下一台开发计算机。

组织这个的最佳方式是什么,这样对于新维护者来说最有意义,并最大限度地减少项目中断开链接的风险。

c# visual-studio code-sharing
8个回答
54
投票

您可以创建一个具有此类的库项目,您所要做的就是添加对该项目的引用。

如果没有选项,您可以使用“右键单击 -> 添加现有项目 -> 添加为链接”,这样您只有一份代码副本,但它可以存在于多个项目中。


12
投票

共享类库是最好的解决方案。

但是您可以将文件作为链接添加到 VS 项目中,而不是复制。为此,请使用添加现有项目对话框的添加按钮上的下拉菜单。


7
投票

如果您确实需要共享源代码,例如,如果您同时拥有同一程序集的 32 位和 64 位版本(如果您依赖本机代码,有时需要这样做),您可以使用答案此线程中给出:如何在 Visual Studio 中的项目/解决方案之间共享代码?

(查找“两个项目之间的“链接”代码文件”。)


5
投票

将日志记录代码分解为单独的程序集。

然后,您可以将该程序集包含在应使用该记录器的项目中。

它使一切保持良好和干净,您只需维护一组代码,而不必担心每个副本。


1
投票

创建一个包含此类的新程序集。

然后您的所有其他项目都可以引用此程序集并使用其中的类。


1
投票

将类放入唯一的命名空间中,然后将该文件添加为指向需要使用它的所有项目的链接。确保为将使用该类的唯一名称空间放置一个 using 语句,否则您必须完全限定它的每次使用。 对于这样的情况,我认为这比汇编要好得多,因为它不会生成不必要的交叉汇编引用,对于您自己的代码的一部分,您只是希望在项目之间共享。


0
投票

您还可以使用版本控制系统来执行此操作。

我们通常会创建包含解决方案和主项目的目录,然后将该目录提交到 SVN。然后所有共享库都使用 svn:external 链接 - 因此所有项目都存在于同一解决方案目录中。

提交后,任何人都可以检查具有所有外部依赖项的工作解决方案。


0
投票

Visual Studio 2015 有一个名为“共享项目”的项目类型,用于收集多个项目共享的源代码。如果您从另一个项目引用这样的项目,那么源代码就会被拉入(不会被整体复制)。

enter image description here

这对于需要查阅其配置或利用某些基础设施以定位共享(非 GAC)程序集的启动代码来说非常必要,例如,或者与自动更新相关的欺骗。

在我们公司,我们有一个全公司范围的系统,用于自动传播配置数据和程序更新,该系统比 Active Directory 和 Microsoft 的发布机制早十多年,并且除了必须包含启动源代码文件之外没有任何缺点应用程序中有大约两打行。

共享源代码项目还可以方便地将程序集组合为较小部件的可交付成果,或者只是用于提取公共部件。

© www.soinside.com 2019 - 2024. All rights reserved.