Pular para o conteúdo

Sil.Builder.Sdk

Define convenções MSBuild, versões e guardrails dos backends.

Referenciado pelo SDK dos projetos gerados; ajuste SilBuilderVersion na configuração do consumidor.

Janela do terminal
dotnet build

Comandos de tests/ e src/ rodam no checkout do builder. Comandos dotnet builder rodam no backend consumidor após a instalação da ferramenta.

Para um projeto Web existente com referências a Sil.Builder.Sdk e Sil.Builder.Runtime, adicione ao .csproj do host:

<PropertyGroup>
<SilGenerateProgram>true</SilGenerateProgram>
</PropertyGroup>

O build gera Main e monta os registros e o pipeline: controllers, serviços do runtime, contexto público, erros, documentação e permissões. Cada módulo referenciado por Sil.Modules.<M>.ApiControllers recebe registro estático de Application e Infrastructure. Referencie também o projeto Infrastructure; Application vem transitivamente. Um módulo incompleto gera SILG005 no build.

Não é necessário ter Program.cs. O template já ativa esse modo e oferece apenas hooks opcionais nesse arquivo:

using Microsoft.AspNetCore.Builder;
namespace Sil.Builder.Generated;
public static partial class SilHost
{
static partial void ConfigureBuilder(WebApplicationBuilder builder)
{
// Configure autenticação, ISilContextAuthorizer e ISilPermissionChecker.
}
static partial void ConfigureApplication(WebApplication app)
{
// Registre endpoints adicionais, sujeitos à exigência de tenant autenticado.
}
}

No arquivo do template, escreva dentro das regiões sil-business dos hooks, preservando a parte gerenciada. ConfigureBuilder roda antes dos registros padrão; ConfigureApplication, depois da montagem do pipeline. A conexão vem de ConnectionStrings:Default, inclusive pela variável ConnectionStrings__Default. A inicialização informa quando falta essa configuração. Migrations continuam no fluxo de banco do consumidor.

Ao usar new module, o builder adiciona referências e o próximo build incorpora o módulo sem editar os hooks. Autenticação e autorização continuam sendo configurações do consumidor; os padrões negam acesso até receberem os adaptadores confiáveis.

Um host manual segue funcionando sem a propriedade. Para migrar, transfira a configuração específica aos hooks e remova os top-level statements ou Main antigo; manter dois pontos de entrada gera SILG006 sem sobrescrever o arquivo. Pipelines próprios podem usar SilGenerateProgram=false e as extensões AddSilApi/UseSilApi ou as extensões individuais do runtime.

Permite Sil.SdkMono e Sil.Common.*; rejeita SdkUtils com SIL1006. Para incluir o SDK Mono no host e nos módulos gerados, fixe SilSdkMonoVersion e configure o feed do pacote.

README do componente ↗ · Catálogo de comandos · Todos os componentes