2016-03-20 16 views
1

Ich entwickle Workflows mit .Net Framework 4.5 (C#) und sie sind getestet und funktioniert perfekt, leider muss ich .Net Framework auf 4.0 Downgrade, ich weiß, dass XAML-Schema für WF hat in .Net 4.5 geändertDowngrade Windows-Workflow von. NET 4.5 zu 4.0

Ich suche, wie WF von .Net 4.5 auf 4.0 herunterstufen, aber ich kann nichts finden, das hilfreich ist. Ich fand diesen Artikel, aber ich kann nicht herausfinden, was zu tun ist: WF projects that use new .NET 4.5 features fail to build when re-targeted to .NET Framework 4

Wer weiß eine bekannte getestet Schritte, die ich folgen könnte, um .Net-Framework auf 4.0 downgraden? oder sollte ich Workflows mit .Net Framework 4.0 neu entwickeln?

Antwort

1

Ich habe dies vor kurzem getan, und es ist möglich. Hier ist, was ich getan habe:

  1. Ändern Sie die Zielversion von .NET Framework in den Projekteigenschaften zu 4.0.
  2. Sie müssen die XAML-Datei Ihres Workflows manuell bearbeiten, indem Sie sie in einem XML-Editor anzeigen. Jeder Ausdrucksparameter, den Sie in C# -Formular geschrieben haben, muss in sein VB.NET-Äquivalent konvertiert werden. Ich fand es einfacher, einfach den C# -Ausdruck im XAML zu löschen, dann öffne den Designer und gebe den Ausdruck wieder unter Verwendung der VB.NET-Syntax ein. Dies ist der langweilige Teil in großen Workflows.
  3. Sie werden feststellen, dass in einem v4.5 Workflow-Format die Liste der Namespaces in einem Element mit dem Namen TextExpression.NamespacesForImplementation liegt. Entfernen Sie dieses Element (und seine untergeordneten Elemente) aus dem XAML.
  4. Entfernen Sie auch das Element TextExpression.ReferencesForImplementation und seine untergeordneten Elemente.
  5. Suchen Sie im Root-Aktivitätselement nach der Zeile, die den Namespace clr-namespace:Microsoft.CSharp.Activities;assembly=System.Activities importiert. Entfernen Sie diesen XML-Namespace. Für mich wurde dem Namensraum das Präfix mca vorangestellt.
  6. Sie müssen nach mca: Präfixelementen suchen, da diese in einem .NET 4.0-basierten Workflow nicht mehr gültig sind. In der Regel sind dies C# -Ausdrücke, in die Aktivitäten geschrieben werden können. Die meisten, wenn nicht alle, würden wahrscheinlich bereits durch die in Schritt 2 durchgeführten Aktionen aufgelöst.
  7. Sie müssen alle Namespaces, die Sie benötigen, erneut hinzufügen, indem Sie des Designers importieren.
  8. Nach all dem sollten Sie in der Lage sein, Ihren heruntergestuften Workflow aufzubauen.
+0

Vielen Dank, es funktioniert, ich möchte nur eine kleine Sache zu Ihrer Lösung hinzufügen, sollten Sie 'DisplayName' für FlowDecision als Eigenschaft in .NET 4.0 nicht unterstützt – Ebraheem