我编写了一个类来处理我的应用程序中的内部日志记录。现在我想在另一个新的、完全独立的项目中使用这个类。
我可以简单地将文件复制到新的项目文件夹中,但我只想保留一份副本,以便随着时间的推移,其中的所有更改都将应用于这两个项目。
我可以使用“添加现有文件”,但是我将文件放在哪里,以便下一个开发人员知道它是必需的。我曾经为此有一个“共享”文件夹,但有一次该文件夹没有被带入下一台开发计算机。
组织它的最佳方式是什么,以便它对新维护者最有意义,并最大限度地减少项目中链接断开的风险。
我编写了一个类来处理我的应用程序中的内部日志记录。现在我想在另一个新的、完全独立的项目中使用这个类。
我可以简单地将文件复制到新的项目文件夹中,但我只想保留一份副本,以便随着时间的推移,其中的所有更改都将应用于这两个项目。
我可以使用“添加现有文件”,但是我将文件放在哪里,以便下一个开发人员知道它是必需的。我曾经为此有一个“共享”文件夹,但有一次该文件夹没有被带入下一台开发计算机。
组织它的最佳方式是什么,以便它对新维护者最有意义,并最大限度地减少项目中链接断开的风险。
您可以通过这种方式创建一个具有此类的库项目,您所要做的就是添加对该项目的引用。
如果这不是选项,您可以使用“右键单击 -> 添加现有项目 -> 添加为链接”,这样您只有一份代码副本,但它可以存在于多个项目中。
共享的类库是最好的解决方案。
但是您可以将文件作为链接而不是复制添加到 VS 项目中。为此,请使用添加现有项目对话框的添加按钮上的下拉菜单。
如果您确实需要共享源代码,例如,如果您同时拥有相同程序集的 32 位和 64 位版本(如果您依赖本机代码,则有时需要),您可以使用给出的答案在此线程中:如何在 Visual Studio 中的项目/解决方案之间共享代码?
(查找“链接”两个项目之间的代码文件。)
将您的日志记录代码分解为单独的程序集。
然后,您可以将该程序集包含在应该使用该记录器的项目中。
它使一切保持整洁,您只需维护一组代码,而不必担心每个副本。
创建一个包含此类的新程序集。
然后您的所有其他项目都可以引用此程序集并使用其中的类。
将该类放在一个唯一的命名空间中,然后将该文件作为链接添加到您需要使用它的所有项目。确保为将要使用该类的唯一命名空间放置 using 语句,否则您将必须完全限定对它的每次使用。对于这种情况,我认为这比汇编更可取,因为它不会生成不必要的交叉汇编引用,因为它是您自己的代码的一部分,您只想在项目之间共享。
您也可以使用您的版本控制系统来执行此操作。
我们通常使用解决方案和主项目创建目录,然后将此目录提交给 SVN。然后使用 svn:external 链接所有共享库 - 所以所有项目都存在于同一个解决方案目录中。
提交后,任何人都可以签出具有所有外部依赖项的工作解决方案。