Vorgehensweise: Paralleles Hosten mehrerer Workflowversionen
WorkflowIdentity
bietet Entwicklern von Workflowanwendungen die Möglichkeit, einer Worfklowdefinition einen Namen und eine Version zuzuordnen und diese Informationen mit einer persistenten Workflowinstanz zu verknüpfen. Entwickler von Workflowanwendungen können diese Identitätsinformationen verwenden, um Szenarien wie die parallele Ausführung mehrerer Versionen einer Workflowdefinition umzusetzen. Darüber hinaus bilden sie die Grundlage für andere Funktionen wie dynamische Updates. In diesem Schritt des Lernprogramms wird veranschaulicht, wie mit WorkflowIdentity
mehrere Versionen eines Workflows gleichzeitig gehostet werden.
In diesem Thema
In diesem Schritt des Lernprogramms werden die WriteLine
-Aktivitäten im Workflow geändert, um zusätzliche Informationen bereitzustellen. Außerdem wird eine neue WriteLine
-Aktivität hinzugefügt. Eine Kopie der ursprünglichen Workflowassembly wird gespeichert, und die Hostanwendung wird aktualisiert, sodass der ursprüngliche und der aktualisierte Workflow gleichzeitig ausgeführt werden können.
So erstellen Sie eine Kopie des NumberGuessWorkflowActivities-Projekts
So aktualisieren Sie WorkflowVersionMap, um die vorherigen Workflowversionen einzuschließen
Hinweis
Bevor Sie die Schritte in diesem Thema ausführen, führen Sie die Anwendung aus, starten mehrere Workflows jedes Typs und geben einen oder zwei Schätzwerte für jeden Typ an. Diese persistenten Workflows werden in diesem Schritt und im Schritt Aktualisieren der Definition einer ausgeführten Workflowinstanz verwendet.
So erstellen Sie eine Kopie des NumberGuessWorkflowActivities-Projekts
Öffnen Sie die Projektmappe WF45GettingStartedTutorial in Visual Studio 2012, sofern sie noch nicht geöffnet ist.
Drücken Sie STRG+UMSCH+B, um die Lösung zu erstellen.
Schließen Sie die Projektmappe WF45GettingStartedTutorial.
Öffnen Sie Windows-Explorer, und navigieren Sie zu dem Ordner, in dem sich die Projektmappendatei und die Projektordner des Lernprogramms befinden.
Erstellen Sie einen neuen Ordner namens PreviousVersions im selben Ordner wie NumberGuessWorkflowHost und NumberGuessWorkflowActivities. In diesem Ordner werden die Assemblys gespeichert, die die verschiedenen Versionen der in den folgenden Lernprogrammschritten verwendeten Workflows enthalten.
Navigieren Sie zum Ordner NumberGuessWorkflowActivities\bin\debug (bzw. je nach den Projekteinstellungen zu bin\release). Kopieren Sie NumberGuessWorkflowActivities.dll, und fügen Sie die Datei in den Ordner PreviousVersions ein.
Benennen Sie NumberGuessWorkflowActivities.dll im Ordner PreviousVersions in NumberGuessWorkflowActivities_v1.dll um.
Hinweis
Die Schritte in diesem Thema zeigen eine Möglichkeit zur Verwaltung der Assemblys, in denen mehrere Versionen der Workflows enthalten sind. Andere Methoden, wie starke Namen für die Assemblys und das Registrieren der Assemblys im globalen Assemblycache, können ebenfalls verwendet werden.
Erstellen Sie einen neuen Ordner namens NumberGuessWorkflowActivities_du im selben Ordner, in dem sich NumberGuessWorkflowHost, NumberGuessWorkflowActivities und der neu hinzugefügte Ordner PreviousVersions befinden. Kopieren Sie dann alle Dateien und Unterordner aus dem Ordner NumberGuessWorkflowActivities in den neuen Ordner NumberGuessWorkflowActivities_du. Diese Sicherungskopie des Projekts für die ursprüngliche Version der Aktivitäten wird unter Aktualisieren der Definition einer ausgeführten Workflowinstanz verwendet.
Öffnen Sie erneut die Projektmappe WF45GettingStartedTutorial in Visual Studio 2012.
So aktualisieren Sie die Workflows
In diesem Abschnitt werden die Workflowdefinitionen aktualisiert. Die beiden WriteLine
-Aktivitäten, die Feedback zum Schätzwert des Benutzers geben, werden aktualisiert, und es wird eine neue WriteLine
-Aktivität hinzugefügt, die zusätzliche Informationen zum Spiel bereitstellt, nachdem die Zahl geschätzt wurde.
So aktualisieren Sie den StateMachine-Workflow
Doppelklicken Sie im Projektmappen-Explorer unter dem Projekt NumberGuessWorkflowActivities auf StateMachineNumberGuessWorkflow.xaml.
Doppelklicken Sie auf den Übergang Guess Incorrect für den Zustandsautomaten.
Aktualisieren Sie
Text
der äußersten linkenWriteLine
in derIf
-Aktivität.Guess & " is too low."
Guess + " is too low."
Aktualisieren Sie
Text
der äußersten rechtenWriteLine
in derIf
-Aktivität.Guess & " is too high."
Guess + " is too high."
Kehren Sie zur allgemeinen Zustandsautomatenansicht im Workflow-Designer zurück, indem Sie in der Breadcrumb-Anzeige am oberen Rand des Workflow-Designers StateMachine auswählen.
Doppelklicken Sie auf den Übergang Guess Correct für den Zustandsautomaten.
Ziehen Sie eine WriteLine-Aktivität aus dem Abschnitt Primitive der Toolbox, und legen Sie sie auf der Bezeichnung Action-Aktivität hier ablegen des Übergangs ab.
Geben Sie den folgenden Ausdruck in das Eigenschaftsfeld
Text
ein.Guess & " is correct. You guessed it in " & Turns & " turns."
Guess + " is correct. You guessed it in " + Turns + " turns."
So aktualisieren Sie den Flowchart-Workflow
Doppelklicken Sie im Projektmappen-Explorer unter dem Projekt NumberGuessWorkflowActivities auf FlowchartNumberGuessWorkflow.xaml.
Aktualisieren Sie
Text
der äußersten linkenWriteLine
-Aktivität.Guess & " is too low."
Guess + " is too low."
Aktualisieren Sie
Text
der äußersten rechtenWriteLine
-Aktivität.Guess & " is too high."
Guess + " is too high."
Ziehen Sie eine WriteLine-Aktivität aus dem Abschnitt Primitive der Toolbox, und legen Sie sie auf dem Ablagepunkt der
True
-Aktion der oberstenFlowDecision
ab. DieWriteLine
-Aktivität wird dem Flussdiagramm hinzugefügt und mit derTrue
-Aktion vonFlowDecision
verknüpft.Geben Sie den folgenden Ausdruck in das Eigenschaftsfeld
Text
ein.Guess & " is correct. You guessed it in " & Turns & " turns."
Guess + " is correct. You guessed it in " + Turns + " turns."
So aktualisieren Sie den Sequential-Workflow
Doppelklicken Sie im Projektmappen-Explorer unter dem Projekt NumberGuessWorkflowActivities auf SequentialNumberGuessWorkflow.xaml.
Aktualisieren Sie
Text
der äußersten linkenWriteLine
in derIf
-Aktivität.Guess & " is too low."
Guess + " is too low."
Aktualisieren Sie
Text
der äußersten rechtenWriteLine
-Aktivität in derIf
-Aktivität.Guess & " is too high."
Guess + " is too high."
Ziehen Sie eine WriteLine-Aktivität aus dem Abschnitt Primitive der Toolbox, und legen Sie sie hinter der DoWhile-Aktivität ab, sodass WriteLine die letzte Aktivität in der
Sequence
-Stammaktivität ist.Geben Sie den folgenden Ausdruck in das Eigenschaftsfeld
Text
ein.Guess & " is correct. You guessed it in " & Turns & " turns."
Guess + " is correct. You guessed it in " + Turns + " turns."
So aktualisieren Sie WorkflowVersionMap, um die vorherigen Workflowversionen einzuschließen
Doppelklicken Sie auf WorkflowVersionMap.cs (oder WorkflowVersionMap.vb) unter dem Projekt NumberGuessWorkflowHost, um die Datei zu öffnen.
Fügen Sie die folgenden
using
-Anweisungen (oderImports
-Anweisungen) mit den anderenusing
-Anweisungen (oderImports
-Anweisungen) am Anfang der Datei hinzu.Imports System.Reflection Imports System.IO
using System.Reflection; using System.IO;
Fügen Sie drei neue Workflowidentitäten direkt unterhalb der drei vorhandenen Deklarationen für Workflowidentitäten hinzu. Über diese neuen
v1
-Workflowidentitäten wird den Workflows, die vor den Updates gestartet wurden, die richtige Workflowdefinition bereitgestellt.'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;
Aktualisieren Sie im
WorkflowVersionMap
-Konstruktor dieVersion
-Eigenschaft der drei aktuellen Workflowidentitäten auf2.0.0.0
.'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());
Durch den darin enthaltenen Code werden dem Wörterbuch die aktuellen Workflowversionen hinzugefügt. Der Code verwendet die aktuellen Versionen, auf die im Projekt verwiesen wird. Aus diesem Grund muss der Code, durch den die Workflowdefinitionen initialisiert werden, nicht aktualisiert werden.
Fügen Sie den folgenden Code im Konstruktor unmittelbar nach dem Code hinzu, durch den dem Wörterbuch die aktuellen Versionen hinzugefügt werden.
'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) };
Diese Workflowidentitäten werden den ursprünglichen Versionen der entsprechenden Workflowdefinitionen zugeordnet.
Als Nächstes laden Sie die Assembly, die die ursprüngliche Version der Workflowdefinitionen enthält, und erstellen die entsprechenden Workflowdefinitionen und fügen sie dem Wörterbuch hinzu.
'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);
Das folgende Beispiel enthält die vollständige Auflistung für die aktualisierte
WorkflowVersionMap
-Klasse.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(); } }
So erstellen Sie die Anwendung und führen sie aus
Drücken Sie STRG+UMSCHALT+B, um die Anwendung zu erstellen, und dann STRG+F5, um sie zu starten.
Beginnen Sie einen neuen Workflow, indem Sie New Game auswählen. Die Version des Workflows wird unter dem Statusfenster angezeigt und gibt die aktualisierte Version der zugeordneten
WorkflowIdentity
an. Notieren Sie dieInstanceId
, sodass Sie beim Abschluss des Workflows dessen Nachverfolgungsdatei anzeigen können. Geben Sie dann Schätzwerte ein, bis das Spiel abgeschlossen ist. Beachten Sie, wie sich der Schätzwert des Benutzers gemäß den Updates derWriteLine
-Aktivitäten in den Informationen im Statusfenster verändert.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.
Hinweis
Der aktualisierte Text aus den
WriteLine
-Aktivitäten wird angezeigt, die Ausgabe der endgültigen, in diesem Thema hinzugefügtenWriteLine
-Aktivität jedoch nicht. Das liegt daran, dass das Statusfenster vomPersistableIdle
-Handler aktualisiert wird. Da der Workflow abgeschlossen wird, statt nach der letzten Aktivität in den Leerlauf zu wechseln, wird derPersistableIdle
-Handler nicht aufgerufen. Im Statusfenster wird jedoch eine ähnliche Meldung vomCompleted
-Handler angezeigt. Bei Bedarf kann Code demCompleted
-Handler hinzugefügt werden, um den Text ausStringWriter
zu extrahieren und ihn im Statusfenster anzuzeigen.Öffnen Sie Windows-Explorer, und navigieren Sie zum Ordner NumberGuessWorkflowHost\bin\debug (bzw. je nach den Projekteinstellungen zu bin\release), und öffnen Sie die Nachverfolgungsdatei, die dem abgeschlossenen Workflow entspricht, mit dem Editor. Wenn Sie
InstanceId
nicht notiert haben, können Sie die richtige Nachverfolgungsdatei über die Informationen unter Geändert am in Windows-Explorer identifizieren.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.
Die aktualisierte
WriteLine
-Ausgabe ist in der Nachverfolgungsdatei enthalten, einschließlich der Ausgabe derWriteLine
-Aktivität, die diesem Thema hinzugefügt wurde.Wechseln Sie zurück zur Anwendung zum Schätzen der Zahl, und wählen Sie einen der Workflows aus, die vor den Updates gestartet wurden. Sie können die Version des aktuell ausgewählten Workflows anhand der Versionsinformationen identifizieren, die unter dem Statusfenster angezeigt werden. Geben Sie mehrere Schätzwerte ein. Sie werden feststellen, dass die Statusupdates mit der Ausgabe der
WriteLine
-Aktivität aus der vorherigen Version übereinstimmen und keine Schätzwerte des Benutzers enthalten. Das liegt daran, dass diese Workflows die vorherige Workflowdefinition verwenden, die nicht über dieWriteLine
-Updates verfügt.Im nächsten Schritt zum Aktualisieren der Definition einer ausgeführten Workflowinstanz werden die ausgeführten
v1
-Workflowinstanzen aktualisiert, sodass sie die neue Funktionalität alsv2
-Instanzen enthalten.