2010-02-18 22 views
5

vs ben 2008.Visual Studio 2008, Office Interop'un 2003 2007

Eklenti bir başlatmak için tıklanabilir tek araç çubuğu düğmesini oluşturur Visual Studio .NET kullanarak, bir eklenti Microsoft Excel için geliştiriyorum Bir veritabanından değerleri aktif elektronik tablonun hücrelerine eklemek için kullanılabilir.

1) Bir gereklilik aracı hem Excel 2003'te ve diğer gereklilik Excel 2007, fırlatma düğmesine kendi şerit sekmesinde olmam, yani) 2007.

2 satışa sunulacak olmasıdır.

Şerit sekmesi gereksinimi nedeniyle, Visual Studio'nun iki ayrı Excel eklenti projesi oluşturdum - ofisin her sürümü için bir tane.

Ancak, iki eklentinin iki farklı Office.Interop derlemesi başvurması gerektiğinden ve veritabanı sorgu formunu sağlayan projeye yalnızca başvuruda bulunabileceğinden, bu üçüncü derlemeyi iki eklenti projesi arasında paylaşamıyorum. .

İki eklenti sürümünün her birinin form kodunun ayrı bir kopyasını bulundurmaktan daha basit bir çözümü olan var mı?

Teşekkürler.

Seçenek 1: veritabanı sorgusu sağlayarak paylaşılan projede herhangi birlikte çalışma derlemeleri başvuruda bulunmayın

cevap

4

iki seçenek vardır. Eklenti projelerinden gerekli Excel birlikte işlerlik kodunu sağlamak için arabirimleri ve bağımlılık enjeksiyonunu kullanın.

Size bir örnek vereyim: Paylaşılan projenizin, Interop kitaplıklarına erişmesi gereken func işlevini yürütmesi gerektiğini varsayın. Paylaşılan projede bir arayüz oluşturabilir: En eklenti projelerinde

public interface ExcelInterface { 
    void func(); 
} 

, sizin sağlamak uygulamalarını bu arayüz için:

class Excel2003Interface : ExcelInterface { // located in your Excel 2003 Addin 
    void func() { 
     // the code here can use the Excel 2003 interop reference 
    } 
} 

Benzer şekilde, Excel 2007 eklenti içinde Excel2007Interface oluşturun.

void DoSomething(ExcelInterface iface) { // this is in your shared project 
    ... 
    iface.func(); 
    ... 
} 

Seçenek 2: kullanın litte paylaşılan projeye formu açarken Sonra

, sen func çağırmak için formu tarafından kullanılır Excel2003Interface veya Excel2007Interface ya bir örneğini, pas iki eklenti proje arasında kod paylaşmak için Visual Studio'nun link file feature.

İlgili konular