Çözüm güncelleştirmelerini basitleştirmek için yamalar oluşturma

Bir çözüme bir varlık ekleyip bu çözümü dışarı aktarırsanız varlık ve ilgili tüm kıymetleri o çözüme dışarı aktarılır. Bu kıymetler arasında öznitelikler, formlar, görünümler, İlişkiler ve görselleştirmelerin yanı sıra varlıkla birlikte sunulan diğer kıymetler yer alır. Tüm nesnelerin dışarı aktarılması, hedef dağıtımdaki nesneleri istemeden değiştirebileceğiniz veya istenmeyen bağımlılıkları aktarabileceğiniz anlamına gelir.

Bu sorunu ele almak için varlığın tamamını ve tüm kıymetlerini yayımlamak yerine, varlıkların alt bileşenlerini içeren çözüm yamalarını oluşturabilir ve yayımlayabilirsiniz. Özgün çözüm ve bir veya daha fazla ilgili yama, daha sonra hedef Microsoft Dataverse kuruluşundaki özgün çözümün yerini alacak çözümün güncelleştirilmiş bir sürümünde daha sonra toplanabilir (birleştirilebilir).

Yamalar

Yönetilen veya yönetilmeyen çözümlere yama uygulayabilir ve yalnızca varlıklara ve ilgili varlık kıymetlerinde yapılan değişiklikleri dahil edebilirsiniz. Yamalar, dağıtılmış kuruluşta zaten var olduğundan, bağımlı olduğu özelleştirilmemiş hiçbir sistem bileşeni veya ilişki içermez. Geliştirme döngünüzde bir noktada, yamaların oluşturulduğu özgün çözümün yerini alacak tüm yamaları yeni bir çözüm sürümü içinde birleştirebilirsiniz.

Yamalar Dataverse veritabanında Solution varlık kayıtları olarak depolanır. Null olmayan bir ParentSolutionId özniteliü,, çözüme yama uygulanmış olduğunu gösterir. Yamalar, ürün yükleme komut dosyası gibi otomasyonu geliştirmek için kullanışlı olan .NET veya Web API'leri için SDK aracılığıyla oluşturulabilir ve yönetilebilir. Ancak, Dataverse web uygulaması, etkileşimli yamalar oluşturmanıza ve yönetmenize olanak sağlayan çeşitli web formları sağlar.

  • Yamalar, yalnızca CloneAsPatchRequest veya CloneAsPatch Eylemi kullanılarak bir üst çözümden oluşturulabilir.

  • Yama üst öğesi, bir yama olamaz.

  • Yamaların yalnızca bir üst çözümü olabilir.

  • Bir yama, kendi üst çözümünde (çözüm düzeyinde) bir bağımlılık oluşturur.

  • Bir yamayı ekini yalnızca üst çözüm mevcutsa yükleyebilirsiniz.

  • ParentSolutionId ile tanımlandığı gibi üst çözümün benzersiz adı ve birincil sürüm numarası hedef kuruluşta yüklü olan üst çözümdekilerle eşleşmezse, yamayı yükleyemezsiniz.

  • Yama sürümü, aynı alt ve üst sürüm numarasına sahip olmalı ancak üst çözüm sürüm numarasından daha büyük bir derleme ve sürüm numarası olmalıdır. Görünen ad farklı olabilir.

  • Bir çözümde yama varsa, sonraki çözümler, bu çözüme yönelik herhangi bir olarak daha yüksek bir sürüm numarasına sahip olmalıdır.

  • Yamalar, ek güncelleştirmesi gibi çözümlerle aynı işlemleri destekler, ancak kaldırmayı desteklemez. Bir yama kullanarak bir çözümden bileşen kaldıramazsınız. Bir çözümden bileşen kaldırmak için yükseltme gerçekleştirin.

  • Yönetilen olarak dışarı aktarılan yamalar, yönetilen üst çözümün üzerine içeri aktarılmalıdır. Kural, yama korumasının (yönetilen veya yönetilmeyen) kendi üst öğesiyle eşleşmesi gerektiği şeklindedir.

  • Üretim amacıyla yönetilmeyen yamaları kullanmayın.

  • Yamalar yalnızca sürüm 8.0 veya sonrası Dataverse kuruluşlarında desteklenir.

    Bu sürümde bulunan SolutionPackager ve PackageDeployer araçları çözüm yamalarını da destekler. Yamalarla ilgili tüm komut satırı seçenekleri için aracın çevrimiçi yardımına bakın.

Yama oluşturma

Bir kuruluştaki yönetilmeyen çözümden CloneAsPatchRequest iletisi veya CloneAsPatch Eylemi öğesini kullanarak veya web uygulamasını kullanarak bir yama oluşturun. Yamayı oluşturduktan sonra orijinal çözüm kilitli hale gelir ve kuruluşta çözümü üst çözüm olarak tanımlayan bağımsız yamalar olduğu sürece orijinal çözümü değiştiremez veya dışarı aktaramazsınız. Yama sürümü oluşturma, çözüm sürümü oluşturma işlemine benzemektedir ve şu biçimde belirtilir: büyük.küçük.derleme.sürümü. Bir yama oluşturduğunuzda, varolan büyük veya küçük çözüm sürümlerinde değişiklik yapamazsınız.

Bir yamayı dışarı veya içeri aktarma

Bir yamayı içe ve dışa aktarmak için .NET için SDK'yi veya Web API'leri, web uygulaması veya Package Deployer aracı kullanabilirsiniz. .NET istek sınıflarına yönelik ilgili SDK ImportSolutionRequest ve ExportSolutionRequest'dir. Web API için ilgili eylemler ImportSolution Eylemive ExportSolution Eylemidir.

Yama yapma örnekleri

Aşağıdaki tabloda, yama olan bir örneğin ayrıntıları listelenmektedir. Bu örnekte, çözüm ve yamaların numara sırasına göre içeri aktarıldığına ve genel olarak çözüm içeri aktarma ile tutarlı şekilde ek olduğuna dikkat edin.

Yama adı Açıklama
Çözüm A, sürüm 1.0 (yönetilmeyen) 6 alanlı varlık A içerir.
Çözüm A, sürüm 1.0.1.0 (yönetilmeyen) 6 alanlı varlık A (3 adet güncelleştirilmiş) içerir ve 10 alanlı varlık B ekler.
Çözüm A, sürüm 1.0.2.0 (yönetilmeyen) 10 alanlı varlık C içerir.

İçeri aktarma işlemi aşağıdaki gibidir.

  1. Geliştirici veya özelleştirici öncelikle temel çözümü (Çözüm A 1.0) kuruluşa içeri aktarır. Sonuç, kuruluşta 6 alanlı varlık A'dır.

  2. Ardından, Çözüm A yama 1.0.1.0 içeri aktarılır. Kuruluş şimdi 6 alanlı (3 güncelleştirilmiştir) varlık A ve 10 alanlı varlık B içerir.

  3. Son olarak, Çözüm A yama 1.0.2.0 içeri aktarılır. Kuruluş şimdi 6 alanlı (3 güncelleştirilmiştir) varlık A, 10 alanlı varlık B ve 10 alanlı varlık C içerir.

Başka bir yama yapma örneği

Aşağıdaki tabloda listelenen ayrıntılarla, başka bir yama içeren örneğe bakalım.

Yama adı Açıklama
Çözüm A, sürüm 1.0 (yönetilmeyen, temel çözüm) Firma numarası alanı uzunluğunun 20 ila 30 karaktere ayarlandığı Account varlığını içerir.
Çözüm B, sürüm 2.0 (yönetilmeyen, farklı tedarikçi) Firma numarası alanı uzunluğunun 50 karaktere ayarlandığı Account varlığını içerir.
Çözüm A, sürüm 1.0.1.0 (yönetilmeyen, yama) Firma numarası alanı uzunluğunun 35 karaktere ayarlandığı Account varlığı güncelleştirmesi içerir.

İçeri aktarma işlemi aşağıdaki gibidir:

  1. Geliştirici veya özelleştirici öncelikle temel çözümü (Çözüm A 1.0) kuruluşa içeri aktarır. Sonuç olarak 30 karakterlik bir firma numarası alanına sahip bir Account varlığı elde edilir.

  2. Çözüm B içeri aktarılır. Kuruluş şimdi 50 karakterlik bir firma numarası alanına sahip bir Account varlığı içerir.

  3. Çözüm A yama 1.0.1.0 içeri aktarılır. Kuruluş Çözüm B tarafından uygulanan 50 karakterlik bir firma numarası alanına sahip bir Account varlığı hala içerir.

  4. Çözüm B kaldırılır. Kuruluş şimdi Çözüm A 1.0.1.0 yaması tarafından uygulanan 35 karakterlik bir firma numarası alanına sahip bir Account varlığı hala içerir.

Bir yamayı silme

Bir yamayı veya temel (üst) çözümü DeleteRequest kullanarak veya Web API'de HTTP DELETE yöntemini kullanarak silebilirsiniz. Kuruluş içinde bir veya daha fazla yama bulunan yönetilen veya yönetilmeyen çözüm için silme işlemi farklıdır.

Yönetilmeyen çözüm için temel çözümü kaldırmadan önce, tüm yamaları öncelikle temel çözüme, oluşturuldukları sürümü sırayla kaldırmanız gerekir.

Bir yönetilen çözüm için, yalnızca temel çözümü kaldırmanız yeterlidir. Dataverse sistemi, temel çözümü kaldırmadan önce yamaları ters sürüm sırasında otomatik olarak kaldırır. Tek bir yamayı da kaldırabilirsiniz.

Çözümü Güncelleştir

Bir çözüm güncelleştirmesi, bu çözüme yönelik tüm yamaları çözümün yeni bir sürümünde toplama (birleştirme) işlemini içerir. Daha sonra, bu çözümün kilidi açılır ve bir kez daha değiştirilebilir (yalnızca yönetilmeyen çözüm) veya dışarı aktarılabilir. Yönetilen çözüm için, yeni güncelleştirilmiş çözümden yama oluşturulması dışında çözüm üzerinde daha fazla değişikliğe izin verilmez. Bir yönetilmeyen çözümde yamaları birleştirmek için CloneAsSolutionRequest veya CloneAsSolution Eylemi öğesini kullanın. Bir çözümun kopyasının oluşturulması, yönetilmeyen çözümün yeni bir sürümünü oluşturarak, tüm yamalarını daha yüksek bir büyük.küçük sürüm numarası, aynı benzersiz ad ve bir görünen adla birleştirir.

Bir yönetilen çözüm için, işlemler biraz farklıdır. Önce yönetilmeyen çözümü (A) klonlayın, tüm yamalarını katıştırın ve sonra da bir yönetilen çözüm (B) olarak dışarı aktarın. (A) çözümünün yönetilen sürümünü ve yamalarını içeren hedef kuruluşta, ymönetilen çözümü (B) içeri aktarın ve daha sonra DeleteAndPromoteRequest ya da DeleteAndPromote Eylemi öğesini yürüterek yönetilen çözümü (A) ve yamalarını daha yüksek sürüm numarasına sahip güncelleştirilmiş yönetilen çözümle (B) değiştirin.

Ayrıca bkz.

Bölümlenmiş çözümler kullanma