Yanıtlar:
obj
Klasö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 obj
klasöre yerleştirilir .
bin
Klasö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 Debug
ve Release
klasö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.
obj
gerç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.
obj
Dizin 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. bin
Dizin 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.
setup
Projeleri kullanıyorsanız dikkatli olun ; Visual Studio kurulum projeleri yerine klasöründen Primary Output
çeker .obj
bin
Ben Karartılmış ve imzalanan sanıyordum uygulamaları bırakmadan oldu msi
ben 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ı bin
klasör meclisleri ve hedefleme olmalıydı obj
klasörü yerine.
Bu sezgisel imho olmaktan uzak, ama genel setup
yaklaşım Primary Output
projeyi kullanmak ve bu obj
klasör. Birisi bu btw'ye biraz ışık tutabilirse çok isterdim.