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. .NET kitaplığının yeni sürümlerini yayınlayarak mevcut kullanıcıları bozmadan her sürümde ek değer sağlayabilmeniz önemlidir.
Hataya neden olan değişiklikler
Sürümler arasındaki hataya neden olan değişiklikleri işleme hakkında bilgi için bkz . Hataya neden olan 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ü Visual Studio NuGet paket yöneticisi NuGet.org 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 için ideal hale getiren özel davranışa sahiptir. Daha fazla bilgi için bkz . Yayın öncesi paketler.
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üm 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, yerine 1.0
gitmek 2.0
hataya neden olabilecek 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.
✔️ DO, kararlı olmayan bir paket yayınlarken yayın öncesi son eki içerir.
Kullanıcıların, paketin tamamlanmadığını anlaması için yayın öncesi paketleri 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, tanımlayıcı adlı bir derlemeyi yüklemek için tam eşleşme gerektirir. Örneğin, Library1, Version=1.0.0.0
başvurusuyla Newtonsoft.Json, Version=11.0.0.0
derlendi. .NET Framework yalnızca tam sürümü 11.0.0.0
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.
Derleme sürümüyle birlikte güçlü adlandırma, katı derleme sürümünün yüklenmesini sağlar. Bir kitaplığı güçlü adlandırmanın bir dizi avantajı olsa da, genellikle bir derlemenin bulunamamasına ve veya içinde app.config
web.config
bağlama yeniden yönlendirmelerinin düzeltilmesine neden olan çalışma zamanı özel durumlarına neden olur. .NET Core'da 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 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 AssemblyVersion'a
1.0.0.0
sahipken, Kitaplık 2.0'da AssemblyVersion vardır2.0.0.0
. 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örüntülenen bazı bilgilendirici iletilere( örneğin, özel durum iletilerinde derleme adı ve derleme uygun tür adları) eklenir. 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önlendirmeleri gereksinimini ortadan kaldırsa da, 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 düzeltmesi olarak sürekli tümleştirme derleme numarası 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.
✔️ DO, dosya sürümü biçimini Major.Minor.Build.Revision
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 denetimi sürümü ile derlemede ayarlanır. Örneğin, 1.0.0-beta1+204ff0a
derlemenin oluşturulduğu kaynak kodun işleme karması içerir. Daha fazla bilgi için bkz . Kaynak Bağlantısı.
<InformationalVersion>The quick brown fox jumped over the lazy dog.</InformationalVersion>
Not
Bu sürüm biçimine Major.Minor.Build.Revision
uymuyorsa Visual Studio'nun eski sürümleri bir derleme uyarısı oluşturur. Uyarı güvenle yoksayılabilir.
❌ Derleme bilgi 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.