SORU
20 Mart 2009, Cuma


Bağlayıcı için Devlet .NET uygulamaları (nam-ı diğer "Efendim, ben Linker" Alabilir; 2009 edition)

Burada bir çok insan muhtemelen bağımlılıkları kaldırmak için bir yol için ağlıyor nerede Joel Spolsky en popüler blog yazıları, Please Sir, May I Have a Linker, Bir aşina .Tek başına bir uygulama bu kadar NET çerçevesinde geliştirilen ve satılabilir.

Jason Zander Visual Studio geliştirme ekibi, zaman, diye yanıtladı with his views on the topic, tartışmayı o konu biraz tartışmalı - yetenek düzeltme güvenlik sorunları çalışma zamanı (diğer yerler arasında) idi onların başlıca konusu. Genel olarak, küçük yükü değdi.

2009 hızlı ileri. Orada birkaç grup C sahip olduğunu iddia eden var# bağlayıcı. (Jason Zander bile fazla bir program uygulamayı kabul etmedi kendisi söyledi.) Tatlı yerine, bir düzine-meg indir .NET biz şimdi büyük bir 200-300 mb 1.0,-çapraz platform tamamlandı .NET sürümleri içeren 3.5 yükleyici .86, x 64 ve ıa64 için NET. Microsoft çalışma zamanı boyutunu azaltmak için öneriler şunlardır:

  • Yeniden açmak, istemezsin hedef platformları kaldırın ve tekrar bir araya koymak
  • Tek platform için kütüphaneler indirme web önyükleyici kullanın
  • Sınırlı kütüphaneler ve x 86 için sadece işleri olan Müşteri Profili yükleyici (geç 2008 Yeni gibi) kullanın

(Lütfen yanlışsam düzeltin) istemci profili bile windows olarak sahip kayıt yok anladığım kadarıyla daha da kötüsü .NET 3.5 yüklü. Bu birden fazla demektir .NET 3.5 istemci uygulamaları bilgisayarda yüklü, hiçbiri birbirini görecek ve zamanı yeniden yüklü tekrar tekrar olacak!

Gerçekten Microsoft burada ne düşündüğünü bilmiyorum. Hatta yüklemek bir hedef platformu (64 gibi) olacak ve sadece bu kütüphaneler dahil olmak üzere en kötü durum varsayarak, hala uygulamayı 60 mb yükü Yukarı bakıyorsun. En iyi bilinen biri bile olabilir .NET uygulamaları, Paint.NET Eğer sorunlar dünyanın geri kalanı hakkında ne ücretsiz bir uygulama dağıtma Varsa Difficulties installing the application because of the massive .NET dependencies. ile dolu idi? Sonunda, kendi uygulama yüklemek geçmeden 5* *zorunda kaldılar.

O yüzden ne dersiniz. Bir linker. İyi olanlar ya da olası bir C oluşturmak için yapan bir araç var# kullanıcı masif yüklemeye gerek kalmadan uygulama .NET çalışma zamanı?

Güncelleme: yani birkaç seçenek var gibi görünüyor:

Mono:

.NET:

Mono araçları kullanın alıyorsanız gibi; nasıl görünüyor .NET tabanlı araçları? Onlarla başka bir deneyim, ya da sadece Microsoft için beklemek itmek zorunda olacak 3.5 herkes için bitti mi? İçin ne kadar sürer düşünmek bile istemiyorum .4.0 NET ortaya koymak için...

CEVAP
29 Mart 2009, Pazar


Mono Linker durumunda.

Burada listelenen yazılımların diğer parçalar hakkında konuşamam, ama Mono Linker yazar olarak, nedir ve ne değildir söyleyebilirim.

Mono Linker sadece yönetilen bir linker, tanımı gereği, derlemeler alır ve çalıştırmak için bir program için gerekli değil ne kaldırır. Tüm derlemeleri birleştirmek değil, ve onları yerel bir program yapmaz.

Bir Mono var.İLMerge klon birleştirme, ama tam değil, ve yazar bunu sürdürmek. Yerli bir program Mono çalışma zamanı ve derlemeleri içeren oluşturmak için, Mono mkbundle tool sağlar.

Ayrıca, sadece yönetilen bir aracı olan değiştirme derlemeler, eğer güçlü adlı derlemeleri, ve senden hiç bir şey olmaz özel anahtarlar için işaret geri alacaksınız sıkıntılar çalışan bu derlemeler.

Linker hakkında blog yazıları yazdım:

Linker ile bizim deneyim hakkında. Linker şu anda Mono projesinin iki parça halinde kullanılır. İnsanlar bizim C gömmek için dağıtımını yaptığımız derleme oluşturmak için kullanılan# derleyicisi, Mono.CSharp.dll. Bu işi nasıl yaptığımızı açıklayan PDC, Miguel's presentation izleyebilirsiniz. Oldukça basit ve özelleştirilebilir bir araç olan Linker, temel bir kullanımı var ve oldukça kolay bunun için özel adımları yazıyorum.

Linker daha karmaşık bir kullanım yolu we create our Moonlight assemblies. Mehtap Silverlight uygulamamız olmak derlemeler masaüstü derlemeleri bir alt kümesidir. Masaüstü derlemeler boyutlarını azaltmak için bağlantı ve özel adımları kullanarak, kamu API Silverlight maç için değiştiriyoruz.

Evet, Linker bazı oldukça pürüzlü kenarlar gibi komut satırı arayüzü mesela, ya da aslında sahip olduğunuz için gerçekten ne yaptığını biliyorsundur, ya da sonuna kadar tuhaf meclisleri, ama sonuçta, bu gerçekten iyi çalışıyor.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Damien Hayes

    Damien Hayes

    11 Mart 2008
  • merumputdotcom

    merumputdotc

    24 ŞUBAT 2012
  • Semantic Mastery

    Semantic Mas

    30 EKİM 2013