在Visual Studio 2008中的解决方案中的项目之间共享代码,无法构建公共程序集

时间:2010-05-03 17:24:32

标签: visual-studio

我为产品Foo创建了一个附加组件。有不同版本的Foo,即版本1,2,3和4。

这些版本主要兼容API,但不完全。

我目前有5个项目:

  • DotNetCommon - 以下是我创建附加组件或Foo产品以外的其他常用方法。
  • FooOne
  • FooTwo
  • FooThree
  • FooFour

Foo * -projects包含Foo版本1-4的加载项。

Foo * -projects中有很多重复的文件,因为API中有很多东西对于所有版本的Foo都是相同的。将所有Foo版本常见的内容分开是很好的。

为什么不为所有版本的Foo创建一个名为FooCommon的公共程序集?

如果我将所有Foo版本的所有类都放入一个新的库项目中,我仍然需要选择新FooCommon应该引用哪个版本的Foo。如上所述,它们并不相同。

1 个答案:

答案 0 :(得分:0)

创建一个包含常用方法的界面:

public interface IFoo
{
   void CommonMethod1();
   void CommonMethod2();
}

从IFoo创建一个抽象基类:

public abstract class FooBase : IFoo
{
   // Implement the common calls here
   public void CommonMethod1()
   {
      // concrete shared code goes here
   }
   public void CommonMethod2()
   {
      // concrete shared code goes here
   }
}

从FooBase创建一次性代码:

public class FooOne : FooBase 
{    
   // concrete code specific to FooOne goes here 
}



public class FooTwo : FooBase 
{    
   // concrete code specific to FooTwo goes here 
}