Nếu bạn muốn làm nâng cấp một phần, đây là cách tôi đã thực hiện nó:
Với
app1 1.0.0
service1 1.0.0
code 1.0.0
config 1.0.0
service2 1.0.0
code 1.0.0
config 1.0.0
Và bạn muốn cập nhật chỉ Dịch vụ 1 tới phiên bản 1.0.1 như hình dưới đây:
app1 1.0.1
service1 1.0.1
code 1.0.1
config 1.0.1
service2 1.0.0
code 1.0.0
config 1.0.0
Trong Service1, hãy cập nhật ServiceManifest.xml để có số phiên bản chính xác (bản thân dịch vụ và các gói khác nhau bạn muốn nâng cấp). Sau đó, trong thư mục service2 của bạn, hãy xóa mọi thứ ngoại trừ ServiceManifest.xml.
Trong tệp ApplicationManifest.xml, bạn nên giữ ServiceManifestImport cho Service2 ở phiên bản 1.0.0. Cũng cập nhật versionnumber cho ServiceManifestImport cho Service1.
Sau đó được thực hiện, bạn sẽ có thể để làm một:
Test-ServiceFabricApplicationPackage $packagePath -ImageStoreConnectionString $ImageStoreConnectionString
để xác nhận rằng gói hoạt động. Điều này làm (theo như tôi hiểu) là nó sử dụng gói địa phương cùng với gói hiện đang được triển khai, và hai kết hợp đó sau đó sẽ bằng một gói hoàn chỉnh hợp lệ.
Vì vậy, về cơ bản, điều duy nhất thay đổi là:
- Bạn loại bỏ những điều bạn không muốn trong gói của bạn (nhưng bạn giữ các ServiceManifest.xml)
- Bạn cập nhật phiên bản các số trong các dịch vụ đã thay đổi
- Bạn cập nhật số phiên bản trong tệp kê khai ứng dụng cho cả ứng dụng và các dịch vụ đã thay đổi.
Ngoài ra, hãy xem tài liệu này: https://azure.microsoft.com/en-us/documentation/articles/service-fabric-application-upgrade-advanced/#upgrade-with-a-diff-package
Về nhận được các cửa hàng ảnh để sử dụng cho Test-ServiceFabricApplicationPackage cuộc gọi (bạn có thể tìm thấy tất cả bằng cách nhìn vào mặc định triển khai kịch bản, nhưng đây là những gì bạn cần):
Open powershell
Connect to your cluster (Connect-ServiceFabricCluster ...)
Execute the following commands:
$ClusterManifestRaw = Get-ServiceFabricClusterManifest
$ClusterManifestXml = [xml]$ClusterManifestRaw
$ManagementSection = $ClusterManifestXml.ClusterManifest.FabricSettings.Section | ? { $_.Name -eq "Management" }
$ImageStoreConnectionString = $ManagementSection .ChildNodes | ? { $_.Name -eq "ImageStoreConnectionString" } | Select-Object -Expand Value
là nó vẫn là trường hợp đó là thích hợp hơn để làm những nâng cấp từ PowerShell hơn là trực tiếp từ vs? –
Công cụ VS cho triển khai cục bộ tốt hơn rất nhiều so với cách đây một năm, nhưng chúng tôi vẫn sử dụng PS để triển khai, ngay cả cục bộ. Đó là sở thích của chúng tôi ít nhất. Tôi đoán tất cả phụ thuộc vào nếu nó làm những gì bạn cần và những gì bạn cảm thấy thoải mái. – anderso
Tôi có thể xem nhanh các tập lệnh của bạn không? –