Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 38548|Yanıt: 2

[Kaynak] Proje sınıf kütüphanesine referans verirken dll.refresh dosyasının etkisi

[Bağlantıyı kopyala]
Yayınlandı 4.05.2020 20:42:50 | | |
Hepimizin bildiği gibi, .net programları oluşturulduktan sonra bin dizininde .dll dosya üretir, peki .dll.refresh dosyası nereden geliyor? O gün sıkıntı aradım ve projenizde üçüncü taraf assembly (doğrudan) referans aldığınızda otomatik olarak oluşturulduğunu öğrendim, bu .refresh dosyası o üçüncü taraf dosyanın orijinal dosya yolunu saklıyor, eğer bu yol altındaki dll güncellenirse, proje oluşturulduğunda ise assembly bu adrese göre güncellenir ve değiştirilir. Bu dosya olmadan, VS referans edilen assembly'yi en son duruma göre güncelleyemez ve bu da assembly sürümünün yanlış olmasına yol açar. Küçük bir detay büyük bir soruna yol açar, herkes dikkat etsin!

Web sitesinin yeni bir sürümü yayımlandı ve kütüphanelerden birinin otomatik güncellenmemesi, ancak eski bir sürümünün otomatik olarak oluşturulması gibi ciddi bir sorun ortaya çıktı.

Araştırmadan sonra, bunun VSS'deki bir dll.refresh dosyasıyla ilgili olduğu ortaya çıktı.

Sebebi basittir:

1。 Geliştirme sürecinde, web sitesine diğer harici DLL referansları eklendiğinde, sistem otomatik olarak yenileme dosyasını oluşturur ve bu çözüm altında başka proje DLL referansları eklenirse bu dosya oluşturulmaz

2。 Refresh dosyası, dll'yi otomatik olarak güncelleme yolunu belirtir ve eğer bir kütüphane referansıysa, Dubug veya Release dizinini belirtir; bu sefer hata yapan dosya Debug dizinidir

3。 Geliştirici yanlışlıkla dosyayı VSS kod tabanına kaydetti

4。 Sorun şu ki, referans kütüphanesi ilk sürüm çıktıktan sonra birçok kez değişmiştir, ancak arayüz değişmemiştir, bu yüzden kütüphane ayrı olarak oluşturulur ve ardından tüm uygulamaların yalnızca ilgili DLL'si (Sürüm sürümü) güncellenir ve herhangi bir sorun yaşanmamıştır; ancak bir uygulama yeniden yayımlandığında, projenin BIN dizininde bir yenileme dosyası bulunduğunda, DLL dosyanın belirttiği yolla otomatik olarak güncellenir ve bu da eski sürüm DLL'nin (Debug sürümü) yayınlanmasına yol açar.

Problem Çözme:

Uygulamadaki dll.refresh dosyasını sil ve uygulamayı yeniden yayınla.

Ya da dll.refresh içindeki içeriği değiştirip dll yolunu doğru yaz





Önceki:Veritabanı şeması: CQRS'ye okuma ve yazma ayrımı
Önümüzdeki:Proxy kurma ve iptal etme NPM yöntemi
 Ev sahibi| Yayınlandı 4.05.2020 20:44:32 |
VS2005'te harici bir dll dosyasına referans verdiğinizde, .refresh adı verilen bir uzantı oluşturulur,
Bir System.Web.Extensions.dll'ye referans verirseniz, otomatik olarak bu dll'nin mutlak yolunu içeren bir System.Web.Extensions.dll.refresh oluşturur.
Not: Sildikten sonra, VS2005 başvuru yaptığınız dll'yi dosya yolundan bin dizinine otomatik olarak güncellemeyecektir. Bu, referans verdiğiniz DL güncellenirse, onu kendiniz manuel olarak yeniden referans almanız gerektiği anlamına gelir.
 Ev sahibi| Yayınlandı 17.05.2020 11:51:33 |
test
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com