Я пытаюсь определить, как удалить среду из определения выпуска, используя клиентскую библиотеку. Есть ли способ удалить среду, не обновляя полностью определение выпуска?
Фрагмент кода ниже иллюстрирует то, что я пытаюсь сделать.
Вызовы UpdateReleaseDefinitionAsync()
завершаются неудачно, поскольку объект ReleaseDefinition, возвращаемый из вызова GetReleaseDefinitionsAsync()
, не содержит предварительных условий для сред. Я не вижу возможности развернуть эту информацию в моем вызове на GetReleaseDefintionsAsync()
.
Если возможно, я бы предпочел просто иметь возможность удалить намеченную среду, не заполняя все свойства ReleaseDefinition
, которые не связаны с Environment
, который я хочу удалить.
Любое руководство будет с благодарностью.
Мой код:
var expandedDefinitions = _releaseClient.GetReleaseDefinitionsAsync(_projectName, _targetReleaseDefinition.Name, expand: ReleaseDefinitionExpands.Environments | ReleaseDefinitionExpands.Artifacts | ReleaseDefinitionExpands.Triggers | ReleaseDefinitionExpands.Variables).Result;
var targetDefinition = expandedDefinitions.Where(d => d.Name == "TheDefinitionIWantToUpdate").First();
var targetEnvironment = targetDefinition.Environments.Where(e => e.Name == "TheEnvironmentIWantToRemove").First();
bool success = targetDefinition.Environments.Remove(targetEnvironment);
_targetReleaseDefinition = _releaseClient.UpdateReleaseDefinitionAsync(targetDefinition, _projectName).Result;