Bir programın yeniden derlenmesi bit için bire bir aynı ikili dosya üretiyor mu?
Tüm derleyiciler için? Hayır. En azından C # derleyicisine izin verilmiyor.
Eric Lippert, derleyicinin çıktısının neden belirleyici olmadığına dair çok ayrıntılı bir döküme sahiptir .
[T] C # derleyicisi tasarım gereği asla aynı ikili dosyayı iki kere üretmez. C # derleyicisi her montajda, her çalıştırışınızda yeni oluşturulan bir GUID'yi yerleştirir, böylece hiçbir iki düzeneğin bit için birebir aynı olmamasını sağlar. CLI şartnamesinden alıntı yapmak için:
Mvid sütunu, modülün bu örneğini tanımlayan benzersiz bir GUID [...] dizine alır. [...] Mvid her modül için yeni oluşturulmalıdır [...] [çalışma zamanı] Mvid’ten hiçbir şekilde faydalanmasa da, diğer araçlar (hata ayıklayıcılar [...] gibi) kullanımına dayanır. Mvid neredeyse her zaman bir modülden diğerine farklılık gösterir.
C # derleyicisinin bir sürümüne özgü olmasına rağmen, makaledeki birçok nokta herhangi bir derleyiciye uygulanabilir .
Öncelikle, her zaman aynı sırada her zaman aynı dosya listesini aldığımızı varsayıyoruz. Ancak bu, bazı durumlarda işletim sistemine bağlı. "Csc * .cs" deyince, işletim sisteminin eşleşen dosyalar listesini sağladığı sıra, işletim sisteminin bir uygulama detayıdır; derleyici bu listeyi kurallı bir sıraya göre sıralamaz.