Ler em inglês

Compartilhar via


Alterações significativas nos módulos gerados devido à atualização do AutoRest.PowerShell da v3 para a v4

Estamos avançando com o uso da nova versão da ferramenta de geração de código, AutoRest.PowerShell v4, para aproveitar os recursos oferecidos pela versão mais recente. A reformulação do código gerado para dar suporte a novos requisitos de usuário nesta versão inevitavelmente apresenta algumas alterações significativas.

Abaixo, listamos as possíveis alterações significativas da perspectiva dos usuários que podem ocorrer ao atualizar a ferramenta de geração de código para módulos do Azure PowerShell.

Observação

As alterações interruptivas listadas abaixo podem não se aplicar universalmente a todos os módulos gerados. A ocorrência dessas alterações interruptivas também depende das configurações específicas usadas ao gerar módulos do Azure PowerShell com o AutoRest.PowerShell v4. Para obter informações detalhadas sobre quais alterações interruptivas podem ocorrer, consulte o para o módulo específico.

Lista substitui matriz em classes C# geradas

Agora geramos propriedades semelhantes a coleções como List em vez de Array nos modelos. Isso ocorre porque List é dinâmico que permite acrescentar/excluir elementos, enquanto Array é de tamanho fixo, portanto, é difícil de editar.

Como atenuar o impacto das alterações interruptivas

  • Use métodos de Lista para substituir métodos de Matriz, por exemplo: usar contagem em vez de Comprimento para recuperar o número de elementos
  • Use a função ToArray se a conversão em uma matriz de tamanho fixo for necessária

Usar tipos primitivos para enum em vez de struct

Usamos para gerar um struct para enum para dar suporte ao preenchimento de guia para parâmetros. Esse design foi abandonado devido à limitação de dar suporte apenas a enumes com tipo de cadeia de caracteres.

Como atenuar o impacto das alterações interruptivas

Geralmente, essa alteração não causará uma alteração significativa para os usuários. Em módulos gerados por versões mais antigas, os usuários normalmente usam tipos primitivos e o struct gerado inclui um conversor que transforma esses tipos primitivos no struct. O único requisito para os usuários é evitar o uso Microsoft.Azure.PowerShell.Cmdlets.{module}.Support diretamente.

Alterações interruptivas devido a correções de bug

Remoção de PassThru para determinados cmdlets

PassThru é um parâmetro de alternância que adicionamos aos cmdlets que não têm saídas para habilitar a funcionalidade do pipeline. No AutoRest.PowerShell v3, PassThru foi adicionado incorretamente a alguns cmdlets que têm saídas. Isso é corrigido na v4 e os parâmetros PassThru extras são removidos.

Como atenuar o impacto das alterações interruptivas

Descontinue o uso do parâmetro PassThru para esses cmdlets. Tenha cuidado, pois, ao fazer isso, a saída pode mudar.

Remoção de parâmetros readonly

Se uma propriedade estiver marcada "x-ms-mutability": ["read"] na especificação OpenAPI, isso significa que ela só deverá aparecer na saída, mas nunca como um parâmetro de entrada. No entanto, no AutoRest.PowerShell v3, esse tipo de parâmetros readonly foram gerados incorretamente para cmdlets.

Como atenuar o impacto das alterações interruptivas

É seguro simplesmente remover esses parâmetros readonly, pois eles são ignorados pelo serviço.