Yanıtlar:
objKlasör tutan nesne, ya da ara dosyaları henüz bağlanmamış edilmemiş ikili dosyaları derlenmektedir. Aslında, son yürütülebilir dosyayı üretmek için birleştirilecek parçalar. Derleyici, her kaynak dosya için bir nesne dosyası oluşturur ve bu dosyalar objklasöre yerleştirilir .
binKlasör tutan ikili dosyaları uygulamanızda veya kitaplık için gerçek çalıştırılabilir kod vardır.
Bu klasörlerin her biri ayrıca projenin derleme yapılandırmalarına karşılık gelen klasörlere Debugve Releaseklasörlere ayrılmıştır . Yukarıda tartışılan iki dosya türü, gerçekleştirdiğiniz yapı türüne bağlı olarak uygun klasöre yerleştirilir. Bu, hangi yürütülebilir dosyaların hata ayıklama sembolleri ile oluşturulduğunu ve hangilerinin etkin ve kullanıma hazır optimizasyonlarla oluşturulduğunu belirlemenizi kolaylaştırır.
Projenizin Özellikler derleme sırasında Visual Studio çalıştırılabilir dosyalarınızı çıktısını değiştirebileceğiniz unutmayın. Derleme yapılandırmalarınız için adları ve seçilen seçenekleri de değiştirebilirsiniz.
objgerçekten sadece ihtiva bağlantısız nesne kod dosyaları? Benim tecrübelerime göre, içerdiği tüm bunların ve son inşa aşamasında, "nihai seti" nin parçası olan dosyalar vardır kopyalanan içine bin.
C # bin ve obj klasörleri arasındaki farkı gösteren ve ayrıca artımlı / koşullu derlemeden nasıl faydalandığımızı açıklayan bu youtube videosunu görmenizi öneririm .
C # derlemesi iki adımlı bir işlemdir, daha fazla ayrıntı için aşağıdaki şemaya bakın:
Hem bin hem de obj dizinini karşılaştırırsanız, "obj" dizininde daha fazla sayıda dosya bulacaksınız, çünkü "bin" tek bir üniteye sahipken ayrı ayrı derlenmiş kod dosyalarına sahiptir.
objDizin oluşturma sırasında derleyici veya yapı sistemi tarafından oluşturulan ara nesne dosyaları ve diğer geçici veri dosyaları içindir. binDizin son çıkış ikili (ve herhangi bir bağımlılık ya da diğer konuşlandırılabilir dosyaları) yazılır olacağı dizindir.
İsterseniz, her iki amaç için kullanılan gerçek dizinleri proje ayarlarından değiştirebilirsiniz.
Obj dizini hakkında ilginç bir gerçek: Bir web projesinde yayınlanmış bir yayınınız varsa, yayınlanacak dosyalar obj \ Release \ Package \ PackageTmp şeklinde hazırlanır. Entegre VS özelliğini kullanmak yerine dosyaları kendiniz yayınlamak istiyorsanız, bin dizinindeki tüm dijital döküntüleri seçmek yerine, burada dağıtmanız gereken dosyaları alabilirsiniz.
setupProjeleri kullanıyorsanız dikkatli olun ; Visual Studio kurulum projeleri yerine klasöründen Primary Outputçeker .objbin
Ben Karartılmış ve imzalanan sanıyordum uygulamaları bırakmadan oldu msiben dağıtılan uygulama dosyaları aslında ne Karartılmış ne de olarak imzalanan I üzerinde post-build işlemi gerçekleştirmeden olarak keşfetmiştir önce uzunca bir süre kurulumları binklasör meclisleri ve hedefleme olmalıydı objklasörü yerine.
Bu sezgisel imho olmaktan uzak, ama genel setupyaklaşım Primary Outputprojeyi kullanmak ve bu objklasör. Birisi bu btw'ye biraz ışık tutabilirse çok isterdim.