Sürüm Oluşturma
Yazılım kitaplığı, sürüm 1.0'da nadiren tamamlanır. İyi kitaplıklar zaman içinde gelişir, özellik ekler, hataları düzeltir ve performansı geliştirir. Mevcut kullanıcıları bozmadan .NET kitaplığının yeni sürümlerini yayımlayabilmeniz önemlidir.
Uyumsuzluk yaratan değişiklikler
Sürümleri arasındaki kırıcı değişiklikleri işleme hakkında bilgi için bkz. Kırıcı değişiklikler.
Sürüm numaraları
.NET kitaplığının bir sürümü belirtmenin birçok yolu vardır. Bu sürümler en önemli sürümlerdir:
NuGet paket sürümü
NuGet paket sürümü NuGet.org ve Visual Studio NuGet paket yöneticisinde görüntülenir ve paket kullanıldığında kaynak koda eklenir. NuGet paketi sürümü, kullanıcıların yaygın olarak göreceği sürüm numarasıdır ve kullandıkları kitaplığın sürümü hakkında konuştukları zaman buna başvururlar. NuGet paket sürümü NuGet tarafından kullanılır ve çalışma zamanı davranışı üzerinde hiçbir etkisi yoktur.
<PackageVersion>1.0.0-alpha1</PackageVersion>
NuGet paket sürümüyle birleştirilen NuGet paket tanımlayıcısı, NuGet'teki bir paketi tanımlamak için kullanılır. Örneğin, Newtonsoft.Json
+ 11.0.2
. Son eki olan bir paket, yayın öncesi bir pakettir ve test etmek için ideal yapan özel bir davranışa sahiptir. Daha fazla bilgi için bkz. ön sürüm paketleri.
NuGet paket sürümü geliştiriciler için en görünür sürüm olduğundan, AnlamSal Sürüm Oluşturma (SemVer)kullanarak güncelleştirmek iyi bir fikirdir. SemVer, sürümler arasındaki değişikliklerin önemini belirtir ve geliştiricilerin hangi sürümü kullanacaklarını seçerken bilinçli bir karar vermelerine yardımcı olur. Örneğin, 1.0
'dan 2.0
'e geçmek potansiyel olarak uyumsuzluk yaratabilecek değişiklikler olduğunu gösterir.
✔️ NuGet paketinizi sürüm olarak SemVer 2.0.0 kullanmayı düşünün.
✔️ DO, kullanıcıların yaygın olarak göreceği sürüm numarası olduğundan genel belgelerde NuGet paketi sürümünü kullanın.
✔️ Kararsız bir paket yayınlarken yayın öncesi son eki eklemeyi unutmayın. (API'leri önizleme veya deneysel olarak işaretleme hakkında daha fazla bilgi için bkz. Önizleme API'leri.)
Kullanıcıların, paketin tamamlanmadığını anlaması için ön sürüm paketlerini almayı kabul etmesi gerekir.
Derleme sürümü
Derleme sürümü, CLR'nin derlemenin yüklenecek sürümünü seçmek için çalışma zamanında kullandığı sürümdür. Sürüm oluşturma kullanarak bir derlemenin seçilmesi yalnızca tanımlayıcı ada sahip derlemeler için geçerlidir.
<AssemblyVersion>1.0.0.0</AssemblyVersion>
.NET Framework CLR, güçlü adlandırılmış bir derlemeyi yüklemek için tam eşleşme gerektirir. Örneğin, Library1, Version=1.0.0.0
, Newtonsoft.Json, Version=11.0.0.0
referans alınarak derlendi. .NET Framework yalnızca 11.0.0.0
tam sürümü yükler. Çalışma zamanında farklı bir sürüm yüklemek için.NET uygulamasının yapılandırma dosyasına bağlama yeniden yönlendirmesi eklenmelidir.
Güçlü adlandırma ve derleme sürümünün birleşimi, katı derleme sürümü yüklemesinisağlar. Bir kitaplığı güçlü adlandırmanın çeşitli avantajları olsa da, bu işlem genellikle çalışma zamanı istisnalarına, bir derlemenin bulunamamasına ve , bağlama yeniden yönlendirmelerinin app.config
veya web.config
üzerinde düzeltilmesini gerektirmesine neden olur. .NET'te (Core), derleme yüklemesi daha rahattır. .NET (Core) çalışma zamanı, çalışma zamanında daha yüksek bir sürüme sahip derlemeleri otomatik olarak yükler.
✔️ AssemblyVersion'da yalnızca bir ana sürümü dahil etmeyi göz önünde bulundurun.
Örneğin, Kitaplık 1.0 ve Kitaplık 1.0.1'in her ikisi de
1.0.0.0
AssemblyVersion'a sahipken, Kitaplık 2.0'da2.0.0.0
AssemblyVersion bulunur. Derleme sürümü daha az sık değiştiğinde, bağlama yeniden yönlendirmelerini azaltır.
✔️ AssemblyVersion ve NuGet paket sürümünün ana sürüm numarasını eşitlenmiş olarak tutmayı GÖZ ÖNÜNDE BULUNDURUN.
AssemblyVersion, kullanıcıya gösterilen bazı bilgilendirici iletilere eklenir; örneğin, özel durum iletilerinde derleme adı ve derleme nitelikli tür adları. Sürümler arasında bir ilişki sağlamak, geliştiricilere hangi sürümü kullandıkları hakkında daha fazla bilgi sağlar.
❌ Sabit bir AssemblyVersion'a SAHIP DEĞİlDİ.
Değişmeyen AssemblyVersion, bağlama yeniden yönlendirmelerine gereksinimi ortadan kaldırsa da, bu, derlemenin yalnızca tek bir sürümünün Genel Bütünleştirilmiş Kod Önbelleği'ne (GAC) yüklenebileceği anlamına gelir. Ayrıca, başka bir uygulama GAC derlemesini hataya neden olan değişikliklerle güncelleştirirse GAC'deki derlemeye başvuran uygulamalar bozulacaktır.
Derleme dosyası sürümü
Derleme dosyası sürümü, Windows'da bir dosya sürümünü görüntülemek için kullanılır ve çalışma zamanı davranışı üzerinde hiçbir etkisi yoktur. Bu sürümü ayarlamak isteğe bağlıdır. Windows Gezgini'ndeki Dosya Özellikleri iletişim kutusunda görünür:
<FileVersion>11.0.2.21924</FileVersion>
✔️ AssemblyFileVersion'un revizyonu olarak sürekli entegrasyon derleme numarasını eklemeyi göz önünde bulundurun.
Örneğin, projenizin 1.0.0 sürümünü oluşturuyorsunuz ve sürekli tümleştirme derleme numarası 99 olduğundan AssemblyFileVersion'ınız 1.0.0.99 olur.
✔️ Dosya sürümü için mutlaka Major.Minor.Build.Revision
biçimini kullanın.
Dosya sürümü hiçbir zaman .NET tarafından kullanılmasa da, Windows dosya sürümünün
Major.Minor.Build.Revision
biçiminde olmasını bekler. Sürüm bu biçime uymuyorsa bir uyarı oluşturulur.
Derleme bilgilendirme sürümü
Derleme bilgi sürümü ek sürüm bilgilerini kaydetmek için kullanılır ve çalışma zamanı davranışı üzerinde hiçbir etkisi yoktur. Bu sürümü ayarlamak isteğe bağlıdır. Kaynak Bağlantı kullanıyorsanız, bu sürüm NuGet paket sürümü ve bir kaynak kontrol sürümü ile derlemede ayarlanır. Örneğin, 1.0.0-beta1+204ff0a
, derlemenin oluşturulduğu kaynak kodunun commit hash'ini içerir. Daha fazla bilgi için bkz. kaynak bağlantısı .
<InformationalVersion>The quick brown fox jumped over the lazy dog.</InformationalVersion>
Not
Visual Studio'nun eski sürümleri, bu sürüm Major.Minor.Build.Revision
biçimine uymuyorsa bir derleme uyarısı oluşturur. Uyarı güvenle göz ardı edilebilir.
❌ Derleme bilgilendirme sürümünü kendiniz ayarlamaktan KAÇıNıN.
SourceLink'in NuGet ve kaynak denetimi meta verilerini içeren sürümü otomatik olarak oluşturmasına izin verin.