我安装了Worfklow Manger 1.0。我可以使用WorkflowManagerClient浏览作用域。但是,当我试图发布活动时,我会得到以下错误:
System.InvalidOperationException: Microsoft.Workflow.Client.ActivityValidationException: Workflow XAML failed validation due to the following errors: Invalid type(s) 'System.Activities.Expressions.AssemblyReference'.活动是从VS中的模板创建的空活动。其中没有使用自定义类型。我已经找到了(System.Activities.Expressions.AssemblyReference).,并且我请求可以创建AllowedTypes.xml文件,但是添加在基本的空活动中使用的类型(基本上是系统类型)是很困难的
我需要创建System.Activities.Expressions.AssemblyReference文件并将其作为一种类型吗?有人非得这么做吗?
编辑:
引起相同错误的其他类型有:
Microsoft.CSharp.Activities.CSharpReference`1
Microsoft.CSharp.Activities.CSharpValue`1发布于 2014-10-27 14:43:26
因此,在发布之前,我应该使用ExpressionTranslator来翻译所有的活动。翻译是工作流管理器中工作流发布过程中的一个步骤。它基本上在将工作流发布(安装)到主机之前,以XAML所需的形式翻译工作流活动中的所有表达式。
我使用了工作流管理器教程翻译方法:
public static XElement Translate(string xamlFile)
{
string translatedWorkflowString = null;
using (XamlReader xamlReader = new XamlXmlReader(xamlFile))
{
TranslationResults result = ExpressionTranslator.Translate(xamlReader);
if (result.Errors.Count == 0)
{
StringBuilder sb = new StringBuilder();
using (XmlWriter xmlWriter = XmlWriter.Create(sb, new XmlWriterSettings { Indent = true, OmitXmlDeclaration = true }))
{
using (XamlXmlWriter writer = new XamlXmlWriter(xmlWriter, result.Output.SchemaContext))
{
XamlServices.Transform(result.Output, writer);
}
}
translatedWorkflowString = sb.ToString();
}
else
{
throw new InvalidOperationException("Translation errors");
}
}
return XElement.Parse(translatedWorkflowString);
}发布于 2015-04-09 22:01:16
我不知道是否为时已晚,但我也遇到了同样的问题,即使是最新的SharePoint服务器2013年升级。
我所做的是将来自SharePoint Designer工作流的"workflow.xaml“文件(将其作为模板保存到站点资产库中之后)与从Visual 2013中生成的"workflow.xaml”进行比较。我发现并解决了我的问题,就是添加这两个属性作为活动元素的一部分。
xmlns:local
="clr-namespace:Microsoft.SharePoint.WorkflowServices.Activities"
xmlns:mwaw
="clr-namespace:Microsoft.Web.Authoring.Workflow;assembly=Microsoft.Web.Authoring"https://stackoverflow.com/questions/26587198
复制相似问题