2009-09-29 16 views
7

Normal bir .NET uygulamasına 3. parti derlemelerinde bağımlılıklar eklendiğinde, bunları yükleyiciye eklemeyi unutmak çok kolaydır. Bu sorun, yalnızca uygulama yüklendikten sonra ve başlangıçta küçük yararlı bilgilerle hazırda bir çökme şeklinde ortaya çıkma eğilimindedir.Hangi eksik DLL'm başlangıçta .NET uygulama çökümü oluşturduğunu nasıl anlarım?

Yükleyiciye hangi montajların eklenmesi gerektiğini bulmak için en iyi araç ve teknikler hangileridir?

cevap

5

insan bileşeni ve dolayısıyla hata azaltmaya yardımcı kurar. Her seferinde otomatik olarak yapılmışsa, her yapının aynı olacağını bilirsiniz, bu yüzden bir kez çalıştıktan sonra her zaman işe yarayacaktır. Eğer kazasının nedenini dışarı çalışmanızı yardımcı araçlar arıyorsanız

Biz MSBuild ve CruiseControl.net

gibi araçları kullanmak, Assembly binding (Fusion) log viewer (or fuslogvw) bir günlüğünü alın. Uygulamanızı başlatmadan önce başlatırsanız, günlük dosyası konumunu ayarlayın ve tam oturum açmayı etkinleştirin, montajları bağlama girişimlerini raporlar ve tüm hataları listeler.

+0

Uygulamam, CCNET tarafından, otomatik kabul testleri de yapan ancak şu anda yükleyiciyi test etmeyen MSBuild ile oluşturulmuştur. Bu sorunu olabildiğince erken yakalamak için tek bir yaklaşım olacağını düşünüyorum, ancak özellikle de sorun oluştuğunda sorunun ne olduğunu bulmak için yardım istiyorum. – GraemeF

+0

Yani, bunu durduran bir şeyden sonra değil, ancak uygulama istemci makinede çöktüğünde hangi .dll'nin eksik olduğunu söyleyen bir şeyden sonra değil mi? –

+0

Evet, bir test makinesinde ilk önce umarım! ;) – GraemeF

3

Bağımlılık Walker, bir uygulama veya DLL'den kaynaklanan bir bağımlılıklar zincirini izleyen ve eksik olanları vurgulayan harika bir küçük yardımcı programdır. Son kullanıcı için kullanmak zorunda olduğu için gerçekten sezgisel değil, ama umarız onu kullanmaya başlarsanız, o zaman eksik öğeleri kendiniz yakalarsınız. Tam otomatik

http://www.dependencywalker.com/

+5

Bağımlılık Walker .Net gruplarıyla çok yararlı değil –

+1

Evet, yönetilmeyen ancak .NET için uygun değil. – GraemeF

0

Yükleyicinizin yeteneklerine bağlıdır. VS entegre kurulum projeleri, tüm bağımlı montajları otomatik olarak alabilir. Yükleyicinizin benzer özellikleri olup olmadığını kontrol etmek isteyebilirsiniz. Öte yandan, VS projelerinize tüm bağımlılıkları çıkış dizinine kopyalayacak ve tüm dosyaları buradan yükleyicinize dahil edecek şekilde yönlendirebilirsiniz.

+0

WiX kullanıyorum ve içerilecek dosyaları açıkça listeliyorum. – GraemeF

+0

Size yardımcı olabilecek herhangi bir WiX aracından haberdar değilim, bu nedenle tüm dosyaları çıkış dizininden almayı önerdim. Düşünebildiğim en kolay şey bu. Proje çıkış dizininden çalışıyorsa, hedef makineye kurduktan sonra da olmalıdır. –