我有两个有一些公共代码的解决方案,所以我想把它提取出来并在它们之间共享。此外,我希望能够独立地发布这个库,因为它可能对其他人有用。

用Visual Studio 2008最好的方法是什么? 一个项目是否存在于多个解决方案中? 对于这段单独的代码,我有单独的解决方案吗? 一个解决方案能依赖于另一个解决方案吗?


当前回答

将公共代码提取到类库项目中,并将该类库项目添加到解决方案中。然后,您可以通过向该类库添加项目引用来添加对来自其他项目的公共代码的引用。与二进制/程序集引用相比,拥有项目引用的优势在于,如果您将构建配置更改为调试、发布、自定义等,公共类库项目也将基于该配置构建。

其他回答

从VisualStudio 2015开始,如果您将所有代码保存在一个解决方案中,您可以通过添加共享项目来共享代码。 然后为您想在其中使用代码的每个项目添加对该共享项目的引用,以及适当的使用指令。

您可以在两个项目之间“链接”代码文件。右键单击项目,选择“添加->现有项目”,然后单击“添加”按钮旁边的向下箭头:

根据我的经验,链接比创建库简单。链接代码会产生一个版本的单一可执行文件。

创建一个包含所有常用功能的dll类库是个好主意。无论其他解决方案如何,每个解决方案都可以独立地引用此dll。

事实上,在我的工作中,这就是我们资源的组织方式(我相信在许多其他地方也是如此)。

顺便说一下,解决方案不能显式地依赖于另一个解决方案。

在跨项目重用代码时,使用“添加现有文件链接”是一个很好的例子,那就是当您需要引用和支持不同版本的依赖库时。

使用不同外部程序集的引用创建多个程序集,如果不重复代码或利用源代码控制的技巧,就不容易做到这一点。

我相信维护一个用于开发和单元测试的项目是最简单的,然后当您需要创建引用这些外部程序集的不同版本的程序集时,使用现有的文件链接创建“构建”项目。

现在您可以使用共享项目了

Shared Project is a great way of sharing common code across multiple application We already have experienced with the Shared Project type in Visual Studio 2013 as part of Windows 8.1 Universal App Development, But with Visual Studio 2015, it is a Standalone New Project Template; and we can use it with other types of app like Console, Desktop, Phone, Store App etc.. This types of project is extremely helpful when we want to share a common code, logic as well as components across multiple applications with in single platform. This also allows accessing the platform-specific API ’s, assets etc.

更多信息请看这个