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

Bir çözüme bir tablo ekleyip bu çözümü dışarı aktarırsanız tablo ve ilgili tüm kıymetleri o çözüme dışarı aktarılır. Bu varlıklar arasında sütunlar (öznitelikler), formlar, görünümler, İlişkiler ve görselleştirmelerin yanı sıra tabloyla 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 bağımlılıkları ele almak için tablonun tamamını ve tüm varlıklarını yayımlamak yerine, tabloları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 tablolarla ve ilgili tablo varlıklarında 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 tablo 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 ana veya alt 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.

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 ortamdaki yönetilmeyen çözümden CloneAsPatchRequest iletisi veya CloneAsPatch Action öğesini kullanarak veya web uygulamasını kullanarak bir yama oluşturun. Yamayı oluşturduktan sonra orijinal çözüm kilitli hale gelir ve ortamda çö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ı dışarı ve içeri aktarmak için Web Apı'leri veya .NET için SDK, web uygulaması veya Package Deployer aracını 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ılır ve eklemelidir ve genel olarak çözüm içeri aktarma ile tutarlıdır.

Yama adı Description
SolutionA, sürüm 1.0 (yönetilmeyen) 6 alanlı entityA içerir.
SolutionA, sürüm 1.0.1.0 (yönetilmeyen) 6 alanlı varlık entityA (üç adet güncelleştirilmiş) içerir ve 10 alanlı entityB ekler.
SolutionA, sürüm 1.0.2.0 (yönetilmeyen) 10 alanlı entityC içerir.

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

  1. Geliştirici veya özelleştirici öncelikle temel çözümü (SolutionA 1.0) ortama aktarır. Sonuç, ortamda 6 alanlı entityA'dır.
  2. Ardından, SolutionA yama 1.0.1.0 içeri aktarılır. Ortam şimdi altı alanlı entityA (üçü güncelleştirilmiştir) ve 10 alanlı entityB içerir.
  3. Son olarak, SolutionA yama 1.0.2.0 içeri aktarılır. Ortam şimdi altı alanlı entityA (üçü güncelleştirilmiştir) ve 10 alanlı entityB ve 10 alanlı entityC 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ı Description
SolutionA, sürüm 1.0 (yönetilmeyen, temel çözüm) Firma numarası sütunu uzunluğunun 20 ila 30 karaktere ayarlandığı Account tablosunu içerir.
SolutionB, sürüm 2.0 (yönetilmeyen, farklı tedarikçi) Firma numarası sütunu uzunluğunun 50 karaktere ayarlandığı Account tablosunu içerir.
SolutionA, sürüm 1.0.1.0 (yönetilmeyen, yama) Firma numarası sütunu uzunluğunun 35 karaktere ayarlandığı Account tablosunun güncelleştirmesi içerir.

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

  1. Geliştirici veya özelleştirici öncelikle temel çözümü (SolutionA 1.0) ortama aktarır. Sonuç olarak 30 karakterlik bir firma numarası sütununa sahip bir Account tablosu elde edilir.
  2. SolutionB içeri aktarılır. Ortam şimdi 50 karakterlik bir firma numarası sütununa sahip bir Account tablosu içerir.
  3. SolutionA yama 1.0.1.0 içeri aktarılır. Ortam Account tarafından uygulanan 50 karakterlik bir firma numarası sütununa sahip bir SolutionB tablosu içermeye devam eder.
  4. SolutionB kaldırılır. Ortam şimdi Account 1.0.1.0 yaması tarafından uygulanan 35 karakterlik bir firma numarası sütununa sahip bir SolutionA tablosu içermeye devam eder.

Bir yamayı silme

Bir yamayı veya temel (üst) çözümü DeleteRequest kullanarak veya Web API'de HTTP DELETE yöntemini kullanarak silebilirsiniz. Ortam 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