updating long-running flows with multiple child flows and custom activities에 대한 내 이전 질문과 관련하여 제작 준비가 완료된 워크 플로를 수정하기위한 코드는 물론 계획을 구현하고 있습니다.비주얼 디자이너를 사용한 동적 업데이트 : 흐름을 코드로 변환 할 수 있습니까?
다른 질문에서 설명한 여러 문제 외에도 동적 업데이트를 위해 준비한 비주얼 디자이너를 디버깅하려고합니다. .xaml에서 diff를 실행 한 후 WorkflowViewState가 혼란 스러울 때 나타나는 문제입니다.
previous posts에 따르면 시각적 디자이너를 포기하는 것이이 문제를 해결하는 확실한 방법 중 하나입니다. 그러나, 나는 보이는 코드를 발견했습니다. 거기에 저를 데려옵니다. 나는 DynamicUpdateServices.PrepareForUpdate
방법을 호출 한 후, 다시 파일에 MainProcessFlow.xaml를 저장하고있어 어떻게 여기에 있습니다 :이 메서드를 호출하고, 비주얼 디자이너에서 .xaml을 연 후
private static void SaveBuilderToFile(ActivityBuilder builder, string filePath)
{
// Make sure the activity builder has the right information about the c# expressions (even though its visual basic)
VisualBasic.SetSettings(builder, VisualBasic.GetSettings(builder));
// Set c# as the language
System.Activities.Presentation.Expressions.ExpressionActivityEditor.SetExpressionActivityEditor(builder, "C#");
// This is what I was hoping would correctly set the Viewstate
WorkflowViewState.SetViewStateManager(
builder.Implementation, WorkflowViewState.GetViewStateManager(builder.Implementation));
string fullPath = Path.GetFullPath(filePath);
using (FileStream file = File.Create(fullPath))
{
using (XmlWriter xmlWriter = XmlWriter.Create(file, new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true }))
{
using (XamlWriter xamlWriter = ActivityXamlServices.CreateBuilderWriter(new XamlXmlWriter(xmlWriter, new XamlSchemaContext())))
{
XamlServices.Save(xamlWriter, builder);
}
}
}
}
을, 활동은 순서가 . 흐름은 화살표가 올바른 방향을 가리키고 있지만 레이아웃이 뒤죽박죽 인 점에서 여전히 "정확합니다". 변경 사항을 작성하고 업데이트 맵을 작성한 후 .xaml을 dynamicupdate 정보없이 다시 저장하면 순서는 여전히 올바르지 않습니다. xaml에서 Viewstate를 설정하는 데 필요한 많은 설명서가 없습니다. 내가 놓친 게 있니?
다른 방법으로 비주얼 디자이너를 선택하지 않는 것이 좋습니다. 우리는 거의 1 년 간의 워크 플로우를 가지고 있기 때문에 엄청난 사업 일 것이지만 DynamicUpdate를 작동시키는 것이 더 중요합니다.
비주얼 디자이너를 포기하는 대신 워크 플로 기반을 완전히 포기하고 자체 워크 플로 엔진을 사용했습니다. – alaskanloops