Bu soru, dağıtımla ilgili olduğu için programlama ile ilgili değildir.
Kendimi, görevi üretim Windows sunucularımızı korumak ve kodumuzu onlara dağıtmak olan şirketimdeki grupla çok sohbet ederken buluyorum. Yasal ve uyumluluk nedenlerinden ötürü, sunucular üzerinde doğrudan görünürlüğüm veya herhangi bir kontrole sahip değilim, bu nedenle herhangi birinde .NET'in hangi sürümlerinin yüklü olduğunu anlamamın tek yolu, o gruba verdiğim yönergelerdir.
Şimdiye kadar, hangi sürümlerin yüklü olduğunu söylemek için düşünebildiğim tüm yöntemler (1.1 veya 2.0 ile eşleşen Yönetimsel Araçlar'ı kontrol edin, "Program Ekle / Kaldır" listesindeki girişleri kontrol edin, c: \ Windows \ Microsoft.NET altındaki dizinler kusurlu (Yönetimsel Araçlar altında 2.0 girişi olan ancak 2.0 girişi olmayan en az bir makine gördüm - ve bu yöntem size 3.0+, "Program Ekle / Kaldır" listesi hakkında hiçbir şey söylemiyor gerçeklikle senkronize olamayabilir ve dizinlerin varlığı ille de bir şey ifade etmez).
Genelde bu şeylerin yerinde olduğunu bilmem gerektiğine göre ("oops, bunun ihtiyacınız olan tüm sürümlere ve hizmet paketlerine sahip olmadığını" keşfetmek, kısa bakım aralıklarında pek işe yaramıyor) ve bunu yapmak zorundayım doğrudan sunuculara erişemediğim için "proxy ile" kontrolünü yapın, .NET'in hangi sürümlerinin bir üretim Windows Sunucusunda yüklü olduğunu anlamanın kusursuz yolu nedir? Tercihen, daha hızlı olacağı ve yüklenecek bir tür yardımcı programa ihtiyaç duymayacağı için çerçevenin yüklediğini kullanarak bunu yapmanın bazı içsel bir yolu ve ayrıca çerçeveler düzgün bir şekilde kurulmadıysa ancak hala yerinde dosyalar varsa kesinlikle başarısız olacak bir yöntem (örn. , bir dizin var ve gacutil.exe oraya giriyor ancak çerçevenin bu sürümü gerçekten "kurulu" değil)
DÜZENLEME: Çerçeve (ler) de yerleşik olarak bunu yapmanın kusursuz bir içsel yolunun yokluğunda, bunu bulabilecek iyi, hafif, kurulum gerektirmeyen bir program bilen var mı? Birinin kolayca yazabileceğini hayal edebiliyorum ama eğer zaten varsa, bu daha da iyi olurdu.