ここで説明するには複雑すぎるさまざまな理由から、ソリューションをそのままにして、カスタムコードワークフローを削除できるようにする必要がある立場にいることに気づきました。
私は基本的にプラグイン登録ツールと同じコードを持っています
つまり、
service.Delete("plugintype", new Guid(info));
ここで、infoはワークフローIDです[foreachループで実行されていますが、それは重要ではありません]
ただし、ツールは問題なくワークフローを削除しますが、私のコードは依存関係について文句を言います。
EM:
追加情報: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);
これによりoptionvaluesetが取得されますが、ソリューションが管理されているため、ソリューションから削除できないため、これを使用してできることはほとんどありません。
私が見ることができる唯一の違いは、OrganizationServiceProxyがインスタンス化される方法です。プラグイン登録ツールにはセキュリティトークンを更新する方法が含まれていますが、私が知る限り、それはあまり機能していません(コードをステップスルーしましたが、何かを見逃した可能性があります)