Use a compilação ReadyToRun ou Ahead-Of-Time (AOT).

This article was translated from English: Does it need improvement?
Translated
View the article in English

O .NET ReadyToRun (R2R) é uma forma de compilação antecipada (AOT).

Habilitar a compilação ReadyToRun durante a implantação pode violar a proteção contra adulteração e resultar em exceções como as seguintes:

Exception: Unhandled exception. IronSoftware.Exceptions.LicensingException: IronPdf, Version=2024.2.0.2, Culture=neutral, PublicKeyToken=94e1c31412563c75 assembly is not authentic. Please try to reinstall the nuget package
   at IronPdf.PdfDocument.uswvws(Boolean vhfwdf)
   at IronPdf.PdfDocument.get_BinaryData()
   at IronPdf.PdfDocument.SaveAs(String FileName, Boolean SaveAsRevision)
   at Program.<Main>(String[] args) in C:\csharppro\aottest\aottest\Program.cs:line 5

Razão

De acordo com a documentação da Microsoft, o SDK pré-compilará os assemblies que são distribuídos com o aplicativo. Para aplicações independentes, este conjunto de assemblies incluirá a estrutura. É importante observar que binários C++/CLI não são elegíveis para compilação ReadyToRun.

Solução

Para excluir assemblies específicos do processamento ReadyToRun, use a lista <PublishReadyToRunExclude> em seu arquivo de projeto. Por exemplo, para excluir o assembly IronPdf.dll:

<ItemGroup>

    <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>

    <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
XML

Este trecho de XML deve ser adicionado ao seu arquivo de projeto (.csproj) para evitar que os assemblies especificados sejam pré-compilados com ReadyToRun, evitando assim problemas potenciais de licenciamento ou adulteração.

System.Environment.FailFast na Primeira Chamada do IronPDF

Em algumas implementações do Windows, o IronPDF falha no processo imediatamente na primeira chamada do IronPDF sem saída de log em nível de aplicativo. O Log de Eventos do Windows registra uma entrada semelhante a:

The application requested process termination through System.Environment.FailFast.
Message: Stack: at System.Environment.FailFast(System.String)
  at <Module>..cctor()
  at Program.<Main>$(System.String[])

Esta é uma falha diferente da exceção de licenciamento acima. O travamento ocorre durante a inicialização estática antes do log normal estar disponível, então não aparecem linhas de log do IronPDF antes do processo terminar.

Este padrão foi confirmado em aplicativos ASP.NET Core hospedados no IIS no Windows Server com PublishReadyToRun ativado. Ele foi reproduzido em:

  • IronPDF 2026.4.1
  • .NET 10
  • IIS (w3wp.exe) on Windows Server 2025 Datacenter
  • AWS EC2 win-x64 alvo de publicação

Solução

Mantenha <PublishReadyToRun>true</PublishReadyToRun> para o aplicativo e exclua somente IronPdf.dll:

<ItemGroup>
    <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<ItemGroup>
    <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
XML

Um exemplo completo .csproj:

<PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>

<ItemGroup>
    <PackageReference Include="IronPdf" Version="2026.4.1" />
</ItemGroup>

<ItemGroup>
    <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
<PropertyGroup>
    <TargetFramework>net10.0</TargetFramework>
    <Nullable>enable</Nullable>
    <ImplicitUsings>enable</ImplicitUsings>
    <PublishReadyToRun>true</PublishReadyToRun>
</PropertyGroup>

<ItemGroup>
    <PackageReference Include="IronPdf" Version="2026.4.1" />
</ItemGroup>

<ItemGroup>
    <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
XML

Após atualizar o .csproj, republique o aplicativo, reimplemente-o, e reinicie o site IIS ou recicle o Pool de Aplicativos.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 19,936,792 | Versão: 2026.7 recém-lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronPdf
executar um exemplo Veja seu HTML se transformar em um PDF.