Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Team Foundation Sürüm Denetimi'nde (TFVC) özel iade ilkelerinizi şu şekilde geçirebilirsiniz. Kodu güncelleştirebilir, otomatikleştirme için önceden tanımlanmış bir yöntem kullanabilir ve eski ilkeleri kaldırmak için geçici bir çözüm kullanabilirsiniz.
Önemli
Mevcut ilkelerinizi silmeden önce geçiş adımlarını tamamlayın.
Kod güncelleştirmeleri
Özel ilkelerinizi taşımak için:
Aynı yöntemlerle yeni bir sınıf oluşturun, fakat
CheckinPolicyBasesınıfı yerineIPolicyCompatibilityJsoniçinIPolicyCompatibilitysınıfını (daha doğrusuPolicyBase) devralın.Eski bir örnek aşağıda verilmiştir.
[Serializable] public class Simple : PolicyBase { public override string Description => "SimplePolicyDescription"; ... }Aşağıda güncelleştirilmiş bir örnek verilmiştir.
[Serializable] public class SimpleNew : CheckinPolicyBase { public override string Description => "SimplePolicyDescription"; ... }GetBinaryFormattergeçersiz kılındıysa,GetJsonSerializerSettingsde uygulayın. Aynı serileştirme mantığını kullanın.JsonSerializerSettingsöğesini,TypeNameHandlingObjectsolarak ayarlayarak yapılandırın.Eski bir örnek aşağıda verilmiştir.
[Serializable] public class Simple : PolicyBase { public override BinaryFormatter GetBinaryFormatter() { BinaryFormatter formatter = new BinaryFormatter(); formatter.Binder = new SimpleBinder(); return formatter; } ... }Aşağıda güncelleştirilmiş bir örnek verilmiştir.
[Serializable] public class SimpleNew : CheckinPolicyBase { public override JsonSerializerSettings GetJsonSerializerSettings() { return new JsonSerializerSettings() { SerializationBinder = new SimpleNewSerializationBinder(), TypeNameHandling = TypeNameHandling.Objects }; } ... }Visual Studio sürüm 16 ve önceki sürümleri hedefleyen uzantılar için, daha önce geçersiz kılınmamış olsa
BinaryFormatterbile aşağıdaki ek kod gereklidir.public class CheckinSerializationBinder : ISerializationBinder { public void BindToName(Type serializedType, out string assemblyName, out string typeName) { Assembly assembly = serializedType.Assembly; assemblyName = assembly.FullName; typeName = serializedType.FullName; } public Type BindToType(string assemblyName, string typeName) { throw new NotImplementedException(); } } [Serializable] public class SimpleNew : CheckinPolicyBase { public override JsonSerializerSettings GetJsonSerializerSettings() { return new JsonSerializerSettings() { SerializationBinder = new CheckinSerializationBinder(), TypeNameHandling = TypeNameHandling.Objects }; } ... }Yeni ilke türünde, daha önce serileştirilmiş özel özellikleri atlayın. Veritabanına kaydedildiklerinden emin olmak için ekleyin
[JsonProperty].Örneğin:
[Serializable] public class SimpleNew : CheckinPolicyBase { [JsonProperty] private List<String> pathFilters; ... }Eski ilke yükleme API'lerini değiştirin.
Örneğin, aşağıdaki eski yöntemler eskidir:
GetCheckinPoliciesForServerPaths,GetCheckinPoliciesveSetCheckinPolicies. Paketten aşağıdaki yöntemleri uygun şekilde kullanın:GetCheckinClientPoliciesForServerPaths,GetCheckinClientPoliciesveSetCheckinClientPolicies.Otomatik ilke geçişi yalnızca özel ilkeler için desteklenir. Yerleşik Visual Studio ilkeleri yeni ilke modelini ve geçişi destekler.
Sunucudaki ilkeleri geçirmek için önceden tanımlanmış bir yöntem kullanma
Daha fazla otomatikleştirme yalnızca özel ilkeler için kullanılabilir. Standart Visual Studio ilkeleri bu özelliği desteklemez. NuGet paketi tarafından sağlanan geçiş yöntemini kullanmayı planlamıyorsanız, bu bölümü atlayabilir ve bu makaledeki sonraki bölüme geçebilirsiniz.
Her eski özel ilke için
IPolicyMigrationarabirimini ekleyin. Bu arabirim vePolicyBaseileIPolicyCompatibility, gelecek bir sürümde kaldırılmak üzere kullanım dışı bırakılmıştır.Önemli
Geçiş sırasında bu arabirimi devralmayan eski ilkeler atlanır. Bunlar yeni ilkeler olarak kaydedilmez .
ToNewPolicyTypeyöntemini eski politikada uygulayın. Bu yöntem şu şekilde olmalıdır:- Yeni politika (policy) sınıfının bir örneğini döndürün.
- Yeni örneği eski ilkedeki değerlerle doldurun.
Örneğin:
[Serializable] public class Simple : PolicyBase, IPolicyMigration { ... public CheckinPolicyBase ToNewPolicyType() { return new SimpleNew(); } }yöntemini çağırın
MigrateFromOldPolicies.