Aracılığıyla paylaş


Nasıl yapılır: İş Akışının Birden Fazla Sürümünü Yan Yana Barındırma

WorkflowIdentity , iş akışı uygulaması geliştiricilerinin bir adı ve sürümü iş akışı tanımıyla ilişkilendirmesi ve bu bilgilerin kalıcı bir iş akışı örneğiyle ilişkilendirilmesi için bir yol sağlar. Bu kimlik bilgileri, iş akışı uygulama geliştiricileri tarafından bir iş akışı tanımının birden çok sürümünün yan yana yürütülmesi gibi senaryoları etkinleştirmek için kullanılabilir ve dinamik güncelleştirme gibi diğer işlevler için köşe taşını sağlar. Öğreticideki bu adım, bir iş akışının birden çok sürümünü aynı anda barındırmak için nasıl kullanılacağını WorkflowIdentity gösterir.

Bu konuda,

Öğreticinin bu adımında, WriteLine iş akışındaki etkinlikler ek bilgi sağlayacak şekilde değiştirilir ve yeni WriteLine bir etkinlik eklenir. Özgün iş akışı derlemesinin bir kopyası depolanır ve konak uygulaması hem özgün hem de güncelleştirilmiş iş akışlarını aynı anda çalıştırabilecek şekilde güncelleştirilir.

Not

Bu konudaki adımları izlemeden önce uygulamayı çalıştırın, her türden birkaç iş akışı başlatın ve her biri için bir veya iki tahminde bulunun. Bu kalıcı iş akışları bu adımda ve aşağıdaki adım olan Nasıl yapılır: Çalışan İş Akışı Örneğinin Tanımını Güncelleştirme adımında kullanılır.

NumberGuessWorkflowActivities projesinin kopyasını oluşturmak için

  1. Açık değilse Visual Studio 2012'de WF45GettingStartedTutorial çözümünü açın.

  2. Çözümü derlemek için CTRL+SHIFT+B'ye basın.

  3. WF45GettingStartedTutorial çözümünü kapatın.

  4. Windows Gezgini'ni açın ve öğretici çözüm dosyasının ve proje klasörlerinin bulunduğu klasöre gidin.

  5. NumberGuessWorkflowHost ve NumberGuessWorkflowActivities ile aynı klasörde PreviousVersions adlı yeni bir klasör oluşturun. Bu klasör, sonraki öğretici adımlarında kullanılan iş akışlarının farklı sürümlerini içeren derlemeleri içermek için kullanılır.

  6. NumberGuessWorkflowActivities\bin\debug klasörüne gidin (veya proje ayarlarınıza bağlı olarak bin\release). NumberGuessWorkflowActivities.dll kopyalayın ve PreviousVersions klasörüne yapıştırın.

  7. PreviousVersions klasöründeki NumberGuessWorkflowActivities.dll NumberGuessWorkflowActivities_v1.dll olarak yeniden adlandırın.

    Not

    Bu konudaki adımlar, iş akışlarının birden çok sürümünü içermek için kullanılan derlemeleri yönetmenin bir yolunu gösterir. Derlemeleri güçlü adlandırma ve bunları genel derleme önbelleğine kaydetme gibi diğer yöntemler de kullanılabilir.

  8. NumberGuessWorkflowHost, NumberGuessWorkflowActivities ve yeni eklenen PreviousVersions klasörüyle aynı klasörde NumberGuessWorkflowActivities_du adlı yeni bir klasör oluşturun ve NumberGuessWorkflowActivities klasöründeki tüm dosyaları ve alt klasörleri yeni NumberGuessWorkflowActivities_du klasörüne kopyalayın. Etkinliklerin ilk sürümü için projenin bu yedek kopyası Nasıl yapılır: Çalışan İş Akışı Örneğinin Tanımını Güncelleştirme bölümünde kullanılır.

  9. Visual Studio 2012'de WF45GettingStartedTutorial çözümünü yeniden açın.

İş akışlarını güncelleştirmek için

Bu bölümde iş akışı tanımları güncelleştirilir. Kullanıcının tahmini hakkında geri bildirimde bulunan iki WriteLine etkinlik güncelleştirilir ve sayı tahmin edildikten sonra oyun hakkında ek bilgi sağlayan yeni WriteLine bir etkinlik eklenir.

StateMachine iş akışını güncelleştirmek için

  1. Çözüm Gezgini,NumberGuessWorkflowActivities projesinin altında StateMachineNumberGuessWorkflow.xaml öğesine çift tıklayın.

  2. Durum makinesinde Yanlış Tahmin Et geçişini çift tıklatın.

  3. Etkinlikte Text en WriteLine solun değerini güncelleştirin If .

    Guess & " is too low."
    
    Guess + " is too low."
    
  4. Etkinlikte Text en WriteLine doğru olanın değerini güncelleştirin If .

    Guess & " is too high."
    
    Guess + " is too high."
    
  5. İş akışı tasarımcısının üst kısmındaki içerik haritası görünümünde StateMachine'e tıklayarak iş akışı tasarımcısında genel durum makine görünümüne dönün.

  6. Durum makinesinde Doğru Tahmin Geçişi'ne çift tıklayın.

  7. Bir WriteLine etkinliğini Araç Kutusu'nun Temel Öğeler bölümünden sürükleyin ve geçişin Buradaki Bırakma Eylemi etkinliği etiketine bırakın.

  8. Özellik kutusuna aşağıdaki ifadeyi Text yazın.

    Guess & " is correct. You guessed it in " & Turns & " turns."
    
    Guess + " is correct. You guessed it in " + Turns + " turns."
    

Akış Çizelgesi iş akışını güncelleştirmek için

  1. Çözüm Gezgini,NumberGuessWorkflowActivities projesinin altında FlowchartNumberGuessWorkflow.xaml öğesine çift tıklayın.

  2. Text En WriteLine soldaki etkinliği güncelleştirin.

    Guess & " is too low."
    
    Guess + " is too low."
    
  3. Text En WriteLine doğru etkinliği güncelleştirin.

    Guess & " is too high."
    
    Guess + " is too high."
    
  4. Bir WriteLine etkinliğini Araç Kutusu'nun Temel Öğeler bölümünden sürükleyin ve en FlowDecisionüstteki eylemin True bırakma noktasına bırakın. Etkinlik WriteLine akış çizelgesine eklenir ve eylemine FlowDecisionbağlanırTrue.

  5. Özellik kutusuna aşağıdaki ifadeyi Text yazın.

    Guess & " is correct. You guessed it in " & Turns & " turns."
    
    Guess + " is correct. You guessed it in " + Turns + " turns."
    

Sıralı iş akışını güncelleştirmek için

  1. Çözüm Gezgini,NumberGuessWorkflowActivities projesinin altında SequentialNumberGuessWorkflow.xaml öğesine çift tıklayın.

  2. Etkinlikte Text en WriteLine solun değerini güncelleştirin If .

    Guess & " is too low."
    
    Guess + " is too low."
    
  3. Etkinlikteki Text en WriteLine doğru etkinliği güncelleştirin If .

    Guess & " is too high."
    
    Guess + " is too high."
    
  4. Bir WriteLine etkinliğini Araç Kutusu'nun Temel Öğeler bölümünden sürükleyin ve DoWhile etkinliğinden sonra bırakın, böylece WriteLine kök Sequence etkinliğindeki son etkinlik olur.

  5. Özellik kutusuna aşağıdaki ifadeyi Text yazın.

    Guess & " is correct. You guessed it in " & Turns & " turns."
    
    Guess + " is correct. You guessed it in " + Turns + " turns."
    

WorkflowVersionMap'i önceki iş akışı sürümlerini içerecek şekilde güncelleştirmek için

  1. NumberGuessWorkflowHost projesinin altındaki WorkflowVersionMap.cs (veya WorkflowVersionMap.vb) çift tıklayarak açın.

  2. Aşağıdaki using (veya ) deyimlerini diğer using (veya ImportsImports) deyimleriyle dosyanın en üstüne ekleyin.

    Imports System.Reflection
    Imports System.IO
    
    using System.Reflection;
    using System.IO;
    
  3. Mevcut üç iş akışı kimliği bildiriminin hemen altına üç yeni iş akışı kimliği ekleyin. Bu yeni v1 iş akışı kimlikleri, güncelleştirmeler yapılmadan önce başlatılan iş akışları için doğru iş akışı tanımını sağlar.

    'Current version identities.
    Public StateMachineNumberGuessIdentity As WorkflowIdentity
    Public FlowchartNumberGuessIdentity As WorkflowIdentity
    Public SequentialNumberGuessIdentity As WorkflowIdentity
    
    'v1 Identities.
    Public StateMachineNumberGuessIdentity_v1 As WorkflowIdentity
    Public FlowchartNumberGuessIdentity_v1 As WorkflowIdentity
    Public SequentialNumberGuessIdentity_v1 As WorkflowIdentity
    
    // Current version identities.
    static public WorkflowIdentity StateMachineNumberGuessIdentity;
    static public WorkflowIdentity FlowchartNumberGuessIdentity;
    static public WorkflowIdentity SequentialNumberGuessIdentity;
    
    // v1 identities.
    static public WorkflowIdentity StateMachineNumberGuessIdentity_v1;
    static public WorkflowIdentity FlowchartNumberGuessIdentity_v1;
    static public WorkflowIdentity SequentialNumberGuessIdentity_v1;
    
  4. OluşturucudaWorkflowVersionMap, üç geçerli iş akışı kimliğinin özelliğini olarak 2.0.0.0güncelleştirinVersion.

    'Add the current workflow version identities.
    StateMachineNumberGuessIdentity = New WorkflowIdentity With
    {
        .Name = "StateMachineNumberGuessWorkflow",
        .Version = New Version(2, 0, 0, 0)
    }
    
    FlowchartNumberGuessIdentity = New WorkflowIdentity With
    {
        .Name = "FlowchartNumberGuessWorkflow",
        .Version = New Version(2, 0, 0, 0)
    }
    
    SequentialNumberGuessIdentity = New WorkflowIdentity With
    {
        .Name = "SequentialNumberGuessWorkflow",
        .Version = New Version(2, 0, 0, 0)
    }
    
    map.Add(StateMachineNumberGuessIdentity, New StateMachineNumberGuessWorkflow())
    map.Add(FlowchartNumberGuessIdentity, New FlowchartNumberGuessWorkflow())
    map.Add(SequentialNumberGuessIdentity, New SequentialNumberGuessWorkflow())
    
    // Add the current workflow version identities.
    StateMachineNumberGuessIdentity = new WorkflowIdentity
    {
        Name = "StateMachineNumberGuessWorkflow",
        // Version = new Version(1, 0, 0, 0),
        Version = new Version(2, 0, 0, 0)
    };
    
    FlowchartNumberGuessIdentity = new WorkflowIdentity
    {
        Name = "FlowchartNumberGuessWorkflow",
        // Version = new Version(1, 0, 0, 0),
        Version = new Version(2, 0, 0, 0)
    };
    
    SequentialNumberGuessIdentity = new WorkflowIdentity
    {
        Name = "SequentialNumberGuessWorkflow",
        // Version = new Version(1, 0, 0, 0),
        Version = new Version(2, 0, 0, 0)
    };
    
    map.Add(StateMachineNumberGuessIdentity, new StateMachineNumberGuessWorkflow());
    map.Add(FlowchartNumberGuessIdentity, new FlowchartNumberGuessWorkflow());
    map.Add(SequentialNumberGuessIdentity, new SequentialNumberGuessWorkflow());
    

    içindeki iş akışlarının geçerli sürümlerini sözlüğe ekleyen kod, projede başvuruda bulunılan geçerli sürümleri kullanır, bu nedenle iş akışı tanımlarını başlatan kodun güncelleştirilmesi gerekmez.

  5. Oluşturucuya, geçerli sürümleri sözlüğe ekleyen kodun hemen arkasına aşağıdaki kodu ekleyin.

    'Initialize the previous workflow version identities.
    StateMachineNumberGuessIdentity_v1 = New WorkflowIdentity With
    {
        .Name = "StateMachineNumberGuessWorkflow",
        .Version = New Version(1, 0, 0, 0)
    }
    
    FlowchartNumberGuessIdentity_v1 = New WorkflowIdentity With
    {
        .Name = "FlowchartNumberGuessWorkflow",
        .Version = New Version(1, 0, 0, 0)
    }
    
    SequentialNumberGuessIdentity_v1 = New WorkflowIdentity With
    {
        .Name = "SequentialNumberGuessWorkflow",
        .Version = New Version(1, 0, 0, 0)
    }
    
    // Initialize the previous workflow version identities.
    StateMachineNumberGuessIdentity_v1 = new WorkflowIdentity
    {
        Name = "StateMachineNumberGuessWorkflow",
        Version = new Version(1, 0, 0, 0)
    };
    
    FlowchartNumberGuessIdentity_v1 = new WorkflowIdentity
    {
        Name = "FlowchartNumberGuessWorkflow",
        Version = new Version(1, 0, 0, 0)
    };
    
    SequentialNumberGuessIdentity_v1 = new WorkflowIdentity
    {
        Name = "SequentialNumberGuessWorkflow",
        Version = new Version(1, 0, 0, 0)
    };
    

    Bu iş akışı kimlikleri, ilgili iş akışı tanımlarının ilk sürümleriyle ilişkilendirilir.

  6. Ardından, iş akışı tanımlarının ilk sürümünü içeren derlemeyi yükleyin ve ilgili iş akışı tanımlarını oluşturup sözlüğe ekleyin.

    'Add the previous version workflow identities to the dictionary along with
    'the corresponding workflow definitions loaded from the v1 assembly.
    'Assembly.LoadFile requires an absolute path so convert this relative path
    'to an absolute path.
    Dim v1AssemblyPath As String = "..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll"
    v1AssemblyPath = Path.GetFullPath(v1AssemblyPath)
    Dim v1Assembly As Assembly = Assembly.LoadFile(v1AssemblyPath)
    
    map.Add(StateMachineNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow"))
    
    map.Add(SequentialNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow"))
    
    map.Add(FlowchartNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow"))
    
    // Add the previous version workflow identities to the dictionary along with
    // the corresponding workflow definitions loaded from the v1 assembly.
    // Assembly.LoadFile requires an absolute path so convert this relative path
    // to an absolute path.
    string v1AssemblyPath = @"..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll";
    v1AssemblyPath = Path.GetFullPath(v1AssemblyPath);
    Assembly v1Assembly = Assembly.LoadFile(v1AssemblyPath);
    
    map.Add(StateMachineNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow") as Activity);
    
    map.Add(SequentialNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow") as Activity);
    
    map.Add(FlowchartNumberGuessIdentity_v1,
        v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow") as Activity);
    

    Aşağıdaki örnek, güncelleştirilmiş WorkflowVersionMap sınıfın tam listesidir.

    Public Module WorkflowVersionMap
        Dim map As Dictionary(Of WorkflowIdentity, Activity)
    
        'Current version identities.
        Public StateMachineNumberGuessIdentity As WorkflowIdentity
        Public FlowchartNumberGuessIdentity As WorkflowIdentity
        Public SequentialNumberGuessIdentity As WorkflowIdentity
    
        'v1 Identities.
        Public StateMachineNumberGuessIdentity_v1 As WorkflowIdentity
        Public FlowchartNumberGuessIdentity_v1 As WorkflowIdentity
        Public SequentialNumberGuessIdentity_v1 As WorkflowIdentity
    
        Sub New()
            map = New Dictionary(Of WorkflowIdentity, Activity)
    
            'Add the current workflow version identities.
            StateMachineNumberGuessIdentity = New WorkflowIdentity With
            {
                .Name = "StateMachineNumberGuessWorkflow",
                .Version = New Version(2, 0, 0, 0)
            }
    
            FlowchartNumberGuessIdentity = New WorkflowIdentity With
            {
                .Name = "FlowchartNumberGuessWorkflow",
                .Version = New Version(2, 0, 0, 0)
            }
    
            SequentialNumberGuessIdentity = New WorkflowIdentity With
            {
                .Name = "SequentialNumberGuessWorkflow",
                .Version = New Version(2, 0, 0, 0)
            }
    
            map.Add(StateMachineNumberGuessIdentity, New StateMachineNumberGuessWorkflow())
            map.Add(FlowchartNumberGuessIdentity, New FlowchartNumberGuessWorkflow())
            map.Add(SequentialNumberGuessIdentity, New SequentialNumberGuessWorkflow())
    
            'Initialize the previous workflow version identities.
            StateMachineNumberGuessIdentity_v1 = New WorkflowIdentity With
            {
                .Name = "StateMachineNumberGuessWorkflow",
                .Version = New Version(1, 0, 0, 0)
            }
    
            FlowchartNumberGuessIdentity_v1 = New WorkflowIdentity With
            {
                .Name = "FlowchartNumberGuessWorkflow",
                .Version = New Version(1, 0, 0, 0)
            }
    
            SequentialNumberGuessIdentity_v1 = New WorkflowIdentity With
            {
                .Name = "SequentialNumberGuessWorkflow",
                .Version = New Version(1, 0, 0, 0)
            }
    
            'Add the previous version workflow identities to the dictionary along with
            'the corresponding workflow definitions loaded from the v1 assembly.
            'Assembly.LoadFile requires an absolute path so convert this relative path
            'to an absolute path.
            Dim v1AssemblyPath As String = "..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll"
            v1AssemblyPath = Path.GetFullPath(v1AssemblyPath)
            Dim v1Assembly As Assembly = Assembly.LoadFile(v1AssemblyPath)
    
            map.Add(StateMachineNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow"))
    
            map.Add(SequentialNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow"))
    
            map.Add(FlowchartNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow"))
        End Sub
    
        Public Function GetWorkflowDefinition(identity As WorkflowIdentity) As Activity
            Return map(identity)
        End Function
    
        Public Function GetIdentityDescription(identity As WorkflowIdentity) As String
            Return identity.ToString()
        End Function
    End Module
    
    public static class WorkflowVersionMap
    {
        static Dictionary<WorkflowIdentity, Activity> map;
    
        // Current version identities.
        static public WorkflowIdentity StateMachineNumberGuessIdentity;
        static public WorkflowIdentity FlowchartNumberGuessIdentity;
        static public WorkflowIdentity SequentialNumberGuessIdentity;
    
        // v1 identities.
        static public WorkflowIdentity StateMachineNumberGuessIdentity_v1;
        static public WorkflowIdentity FlowchartNumberGuessIdentity_v1;
        static public WorkflowIdentity SequentialNumberGuessIdentity_v1;
    
        static WorkflowVersionMap()
        {
            map = new Dictionary<WorkflowIdentity, Activity>();
    
            // Add the current workflow version identities.
            StateMachineNumberGuessIdentity = new WorkflowIdentity
            {
                Name = "StateMachineNumberGuessWorkflow",
                // Version = new Version(1, 0, 0, 0),
                Version = new Version(2, 0, 0, 0)
            };
    
            FlowchartNumberGuessIdentity = new WorkflowIdentity
            {
                Name = "FlowchartNumberGuessWorkflow",
                // Version = new Version(1, 0, 0, 0),
                Version = new Version(2, 0, 0, 0)
            };
    
            SequentialNumberGuessIdentity = new WorkflowIdentity
            {
                Name = "SequentialNumberGuessWorkflow",
                // Version = new Version(1, 0, 0, 0),
                Version = new Version(2, 0, 0, 0)
            };
    
            map.Add(StateMachineNumberGuessIdentity, new StateMachineNumberGuessWorkflow());
            map.Add(FlowchartNumberGuessIdentity, new FlowchartNumberGuessWorkflow());
            map.Add(SequentialNumberGuessIdentity, new SequentialNumberGuessWorkflow());
    
            // Initialize the previous workflow version identities.
            StateMachineNumberGuessIdentity_v1 = new WorkflowIdentity
            {
                Name = "StateMachineNumberGuessWorkflow",
                Version = new Version(1, 0, 0, 0)
            };
    
            FlowchartNumberGuessIdentity_v1 = new WorkflowIdentity
            {
                Name = "FlowchartNumberGuessWorkflow",
                Version = new Version(1, 0, 0, 0)
            };
    
            SequentialNumberGuessIdentity_v1 = new WorkflowIdentity
            {
                Name = "SequentialNumberGuessWorkflow",
                Version = new Version(1, 0, 0, 0)
            };
    
            // Add the previous version workflow identities to the dictionary along with
            // the corresponding workflow definitions loaded from the v1 assembly.
            // Assembly.LoadFile requires an absolute path so convert this relative path
            // to an absolute path.
            string v1AssemblyPath = @"..\..\..\PreviousVersions\NumberGuessWorkflowActivities_v1.dll";
            v1AssemblyPath = Path.GetFullPath(v1AssemblyPath);
            Assembly v1Assembly = Assembly.LoadFile(v1AssemblyPath);
    
            map.Add(StateMachineNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.StateMachineNumberGuessWorkflow") as Activity);
    
            map.Add(SequentialNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.SequentialNumberGuessWorkflow") as Activity);
    
            map.Add(FlowchartNumberGuessIdentity_v1,
                v1Assembly.CreateInstance("NumberGuessWorkflowActivities.FlowchartNumberGuessWorkflow") as Activity);
        }
    
        public static Activity GetWorkflowDefinition(WorkflowIdentity identity)
        {
            return map[identity];
        }
    
        public static string GetIdentityDescription(WorkflowIdentity identity)
        {
            return identity.ToString();
        }
    }
    

Uygulamayı derlemek ve çalıştırmak için

  1. Uygulamayı oluşturmak için CTRL+SHIFT+B tuşlarına basın ve ardından başlamak için CTRL+F5 tuşlarına basın.

  2. Yeni Oyun'a tıklayarak yeni bir iş akışı başlatın. İş akışının sürümü durum penceresinin altında görüntülenir ve ilişkili WorkflowIdentitysürümünden güncelleştirilmiş sürümü yansıtır. tamamlandığında iş akışının InstanceId izleme dosyasını görüntüleyebilmeniz için değerini not edin ve ardından oyun tamamlanana kadar tahminler girin. Etkinlik güncelleştirmelerine bağlı olarak durum penceresinde görüntülenen bilgilerde kullanıcının tahmininin nasıl görüntülendiğine WriteLine dikkat edin.

    Please enter a number between 1 and 10
    5 is too high.
    Please enter a number between 1 and 10
    3 is too high.
    Please enter a number between 1 and 10
    1 is too low.
    Please enter a number between 1 and 10
    Congratulations, you guessed the number in 4 turns.
    

    Not

    Etkinliklerden WriteLine güncelleştirilmiş metin görüntülenir, ancak bu konuya eklenen son WriteLine etkinliğin çıkışı görüntülenmez. Bunun nedeni durum penceresinin işleyici tarafından güncelleştirilmiş PersistableIdle olmasıdır. İş akışı tamamlandığından ve son etkinlik sonrasında boşta kalmadığından işleyici PersistableIdle çağrılmaz. Ancak, durum penceresinde işleyici tarafından Completed benzer bir ileti görüntülenir. İsterseniz, içindeki metni StringWriter ayıklamak Completed ve durum penceresinde görüntülemek için işleyiciye kod eklenebilir.

  3. Windows Gezgini'ni açın ve NumberGuessWorkflowHost\bin\debug klasörüne (veya proje ayarlarınıza bağlı olarak bin\release) gidin ve tamamlanan iş akışına karşılık gelen Not Defteri kullanarak izleme dosyasını açın. not InstanceIdalmadıysanız, Windows Gezgini'ndeki Değiştirme tarihi bilgilerini kullanarak doğru izleme dosyasını tanımlayabilirsiniz.

    Please enter a number between 1 and 10
    5 is too high.
    Please enter a number between 1 and 10
    3 is too high.
    Please enter a number between 1 and 10
    1 is too low.
    Please enter a number between 1 and 10
    2 is correct. You guessed it in 4 turns.
    

    Güncelleştirilmiş WriteLine çıkış, bu konuda eklenen çıkışı WriteLine da dahil olmak üzere izleme dosyasının içinde yer alır.

  4. Sayı tahmin uygulamasına geri dönün ve güncelleştirmeler yapılmadan önce başlatılan iş akışlarından birini seçin. Durum penceresinin altında görüntülenen sürüm bilgilerine bakarak seçili durumdaki iş akışının sürümünü tanımlayabilirsiniz. Bazı tahminler girin ve durum güncelleştirmelerinin önceki sürümdeki etkinlik çıkışıyla eşleştiğine WriteLine ve kullanıcının tahminini içermediğini unutmayın. Bunun nedeni, bu iş akışlarının güncelleştirmeleri olmayan önceki iş akışı tanımını kullanmalarıdır WriteLine .

    Bir sonraki adımda, Nasıl yapılır: Çalışan İş Akışı Örneğinin Tanımını Güncelleştirme, çalışan v1 iş akışı örnekleri, örnekler olarak yeni işlevselliği içerecek şekilde v2 güncelleştirilir.