Use a compilação ReadyToRun ou Ahead-Of-Time (AOT).
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>
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-x64alvo 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>
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>
Após atualizar o .csproj, republique o aplicativo, reimplemente-o, e reinicie o site IIS ou recicle o Pool de Aplicativos.

