在几个项目之间共享c#类源代码

问题描述:

我已经写了一个类来处理我的应用程序中的内部日志记录。 现在我想在另一个新的完全独立的项目中使用这个类。在几个项目之间共享c#类源代码

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

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

什么是组织这种方式的最佳方式,以便它对新维护者最有意义,并最大限度地降低项目中断开链接的风险。

+1

你们真的想告诉我,源代码级共享在C#中是不可能的吗? – 2010-04-26 21:03:47

+0

@Pavel:这个问题并不是真正的C#特定,虽然我在这里寻找一个特定于C#的解决方案。 我已经遇到过项目中的单个文件丢失的情况,因为它们位于另一个文件夹中,而未与其余文件一起发送。 – hultqvist 2010-04-27 07:02:12

+0

您可以在下面的jorgen的帖子中看到准确的答案。 – user912447 2013-04-12 17:08:14

您可以创建一个具有此类的库项目,您只需添加对该项目的引用即可。

如果这是无法选择,您可以使用“右键单击 - >添加现有项目 - >添加为链接”这种方式,你只有一个代码副本,但它可以存在于多个项目中。

+0

可以请你看看它在这里http://*.com/questions/21301360/share-properties-from-child-app-to-base-project – Goofy 2014-01-23 07:05:16

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

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

它保持一切都很干净,你只需要维护一套代码,而不必担心每个副本。

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

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

要分享的类库是最佳解决方案。

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

如果您确实需要共享源代码,例如,如果您有同一个程序集的同时32位和64位版本(如果您依赖本机代码,需要多次),您可以使用此线程给出了答案:How do you share code between projects/solutions in Visual Studio?

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

把类中唯一的命名空间,然后添加文件为纽带,以所有您需要使用它的项目。确保你为该类使用的唯一名称空间放置使用语句,否则你将不得不完全限定它的每一次使用。 对于这样的情况,我认为这比assemply更可取,因为它不会产生不必要的交叉引用,因为它只是您自己的代码的一部分,您只希望在您的项目之间共享。

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

我们通常使用Solution和Main Project创建Directory,然后将这个目录提交到SVN。然后,所有共享库都使用svn:external链接 - 因此所有的Projects都存在于同一个解决方案目录中。

提交后,任何人都可以签出工作解决方案与所有外部依赖关系。