2011-11-25 21 views
6

Bir kaplama sistemi kullanan ve proje klasöründeki harici görüntülere (bir zip dosyası) bağımlı olan C# özel denetimleri (formlar, düğmeler, vb.) Kullanıyorum. Şu anda, form tasarımcısı denetimleri gösteremiyor çünkü zip dosyasına doğru yolu alamıyorum. İhtiyacım olan şey, tasarım zamanında montaj veya çözüm yolunu bulmanın bir yoludur.C# Tasarım Zaman Yolu

İki proje kullanıyorum:
DLL - Özel denetimleri içerir.
Anasistem uygulaması - DLL'yi referans alır ve özel denetimleri kullanır. Benim DLL özel denetim sınıflarında

, zamanında, ben sadece kullanıyorum:

Could not find a part of the path 'C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\Skins\Black.zip'. 
:

mükemmel çalışıyor, ancak tasarım zamanında
string skinPath = "./Skins/" + skin + ".zip"; 

form tasarımcısı hata görüntüler

Sitede benzer sorulara baktıktan sonra, aşağıdakileri de denedim:
1)

if (designMode) 
{ 
    EnvDTE.DTE dte = GetService(typeof(EnvDTE.DTE)) as EnvDTE.DTE; 
    string path = Path.GetDirectoryName(dte.Solution.FullName); 
} 

Object reference not set to an instance of an object. 

2)

if (designMode) 
{ 
    ITypeResolutionService typeResService = GetService(typeof(ITypeResolutionService)) as ITypeResolutionService; 
    string path = typeResService.GetPathOfAssembly(Assembly.GetExecutingAssembly().GetName()); 
} 

form tasarımcısı hata görüntüler:

Object reference not set to an instance of an object. 

3) kullanarak farklı yollarının çeşitli

form tasarımcısı hata görüntüler Meclis sınıfı.

Henüz hiçbir şey işe yaramadı. Visual C# 2010 Express kullanıyorum.

+0

Ugh. '' Bu şekilde kullanmayın. Bunun yerine bir yayın kullanın. –

+0

Üzgünüz, ama benim kodum değildi. Farklı çözümler deneyen birçok farklı sorudan kod kopyalayıp yapıştırıyorum. – Snip3r

+0

Daha sonra 'Black.zip' i kopyala: C:/Program Dosyaları (x86)/Microsoft Visual Studio 10.0/Common7/IDE/Skins /' :) –

cevap

1

2. girişiminiz (ITypeResolutionService) düzgün çalışmalıdır. Sadece GetService'u yeterince geç aradığınızdan emin olun, bu nedenle Site özelliği boş olmaz. OnHandleCreated iyi, denetim kurucu çok yakında ve NullReferenceException üretir.

+0

Bu çözüldü. Çok teşekkür ederim. Seçenek 2'deki kod işe yaramadıysa da, bunu çok erken çağırmakla ilgili haklısınız. OnLoad olay işleyicisinde 1. seçenekten kodu ekledim ve bingo: D Büyük beğeni topladı. – Snip3r

+0

Daha fazla güncelleme, yola biraz ayarlamayla, seçenek 2 de çalıştı :) – Snip3r