由于各种原因过于复杂,无法在此解释,我发现自己需要能够删除自定义代码工作流,同时将解决方案留在那里。
我基本上和插件注册工具有相同的代码
即
service.Delete("plugintype", new Guid(info));
其中 info 是工作流 id [在 foreach 循环上运行,但这不是重点]
但是,虽然该工具可以毫无问题地删除工作流,但我的代码却抱怨依赖关系。
电磁:
附加信息:无法删除 PluginType(a0b2dcf7-cf2a-111e-7da9-003021880a42) 组件,因为它被 1 个其他组件引用。有关引用组件的列表,请使用 RetrieveDependenciesForDeleteRequest。
我适时地做到了
RetrieveDependenciesForDeleteRequest req = new RetrieveDependenciesForDeleteRequest();
req.ComponentType = 90; //plugintype
req.ObjectId = new Guid(info);
RetrieveDependenciesForDeleteResponse resp = (RetrieveDependenciesForDeleteResponse)OrgService.Execute(req);
这会检索一个选项值集,但我无能为力,因为在管理解决方案时我无法将其从解决方案中删除。
我能看到的唯一区别是 OrganizationServiceProxy 实例化的方式。插件注册工具包括一种刷新安全令牌的方法,但据我所知,它并没有做太多(我已经逐步完成了代码,但可能我错过了一些东西)