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

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


当前回答

您可以在多个解决方案中包含一个项目。我不认为一个项目有属于哪个解决方案的概念。然而,另一种替代方法是将第一个解决方案构建到一些众所周知的地方,并引用已编译的二进制文件。这样做的缺点是,如果您想根据您构建的是发布配置还是调试配置来引用不同的版本,那么您将需要做一些工作。

我不相信您可以让一个解决方案依赖于另一个解决方案,但是您可以通过自定义脚本以适当的顺序执行自动构建。基本上把你的公共库当作另一个第三方依赖,比如NUnit等。

其他回答

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

您可以在多个解决方案中包含一个项目。我不认为一个项目有属于哪个解决方案的概念。然而,另一种替代方法是将第一个解决方案构建到一些众所周知的地方,并引用已编译的二进制文件。这样做的缺点是,如果您想根据您构建的是发布配置还是调试配置来引用不同的版本,那么您将需要做一些工作。

我不相信您可以让一个解决方案依赖于另一个解决方案,但是您可以通过自定义脚本以适当的顺序执行自动构建。基本上把你的公共库当作另一个第三方依赖,比如NUnit等。

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

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

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

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

您可以托管一个内部NuGet服务器,并共享将在其他项目内部和外部共享的公共库。

再往下读