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

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


当前回答

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

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

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

其他回答

您可以使用以下技术(这是@Andomar的解决方案保存在.csproj中的方法)内联通配符

<Compile Include="..\MySisterProject\**\*.cs">
  <Link>_Inlined\MySisterProject\%(RecursiveDir)%(Filename)%(Extension)</Link>
</Compile>

投入:

    <Visible>false</Visible>

如果你想隐藏文件和/或防止通配符包括被扩展,如果你添加或删除一个项目从“虚拟现有项目”文件夹,如上面的MySisterProject。

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

一个项目可以被多个解决方案引用。

将库或核心代码放入一个项目中,然后在两个解决方案中引用该项目。

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

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

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

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

再往下读