# Utilizar la compilación ReadyToRun o Ahead-Of-Time (AOT)
[.NET ReadyToRun (R2R)](https://learn.microsoft.com/en-us/dotnet/core/deploying/ready-to-run) es una forma de compilación anticipada (AOT).
Habilitar la compilación ReadyToRun durante la implementación podría violar la protección contra manipulaciones y resultar en excepciones como las siguientes:
```txt
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
```
### Motivo
Según la documentación de Microsoft, el SDK precompilará los ensamblados que se distribuyen con la aplicación. Para aplicaciones autónomas, este conjunto de ensamblados incluirá el marco de trabajo. Es importante tener en cuenta que los binarios C++/CLI no son elegibles para la compilación ReadyToRun.
### Solución
Para excluir ensamblajes específicos del procesamiento ReadyToRun, use la lista `<PublishReadyToRunExclude>` en su archivo de proyecto. Por ejemplo, para excluir el ensamblaje `IronPdf.dll`:
```xml
<ItemGroup>
<!-- Excludes IronPdf.dll from ReadyToRun compilation -->
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
```
Este fragmento de XML debe añadirse a su archivo de proyecto (`.csproj`) para evitar que los ensamblajes especificados se precompilen con ReadyToRun, evitando así posibles problemas de licencias o manipulación.
## System.Environment.FailFast en la primera llamada de IronPDF
En algunos despliegues de Windows, IronPDF falla el proceso inmediatamente en la primera llamada de IronPDF sin salida de registro a nivel de aplicación. El Registro de eventos de Windows registra una entrada similar a:
```txt
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[])
```
Este es un fallo diferente al de la excepción de licencia antes mencionada. El fallo ocurre durante la inicialización estática antes de que el registro normal esté disponible, por lo que no aparecen líneas de registro de IronPDF antes de que el proceso termine.
Este patrón ha sido confirmado en aplicaciones ASP.NET Core alojadas en IIS en Windows Server con `PublishReadyToRun` habilitado. Ha sido reproducido en:
- IronPDF 2026.4.1
- .NET 10
- IIS (`w3wp.exe`) on Windows Server 2025 Datacenter
- Objetivo de publicación AWS EC2 `win-x64`
### Solución
Mantenga `<PublishReadyToRun>true</PublishReadyToRun>` para la aplicación y excluya solo `IronPdf.dll`:
```xml
<ItemGroup>
<PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
```
Un ejemplo completo de `.csproj`:
```xml
<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>
```
Después de actualizar el `.csproj`, vuelva a publicar la aplicación, redepliegue y reinicie el sitio de IIS o recicle el Application Pool.
Habilitar la compilación ReadyToRun durante la implementación podría violar la protección contra manipulaciones y resultar en excepciones como las siguientes:
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
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
Text
Motivo
Según la documentación de Microsoft, el SDK precompilará los ensamblados que se distribuyen con la aplicación. Para aplicaciones autónomas, este conjunto de ensamblados incluirá el marco de trabajo. Es importante tener en cuenta que los binarios C++/CLI no son elegibles para la compilación ReadyToRun.
Solución
Para excluir ensamblajes específicos del procesamiento ReadyToRun, use la lista <PublishReadyToRunExclude> en su archivo de proyecto. Por ejemplo, para excluir el ensamblaje IronPdf.dll:
Este fragmento de XML debe añadirse a su archivo de proyecto (.csproj) para evitar que los ensamblajes especificados se precompilen con ReadyToRun, evitando así posibles problemas de licencias o manipulación.
System.Environment.FailFast en la primera llamada de IronPDF
En algunos despliegues de Windows, IronPDF falla el proceso inmediatamente en la primera llamada de IronPDF sin salida de registro a nivel de aplicación. El Registro de eventos de Windows registra una entrada similar 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[])
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[])
Text
Este es un fallo diferente al de la excepción de licencia antes mencionada. El fallo ocurre durante la inicialización estática antes de que el registro normal esté disponible, por lo que no aparecen líneas de registro de IronPDF antes de que el proceso termine.
Este patrón ha sido confirmado en aplicaciones ASP.NET Core alojadas en IIS en Windows Server con PublishReadyToRun habilitado. Ha sido reproducido en:
IronPDF 2026.4.1
.NET 10
IIS (w3wp.exe) on Windows Server 2025 Datacenter
Objetivo de publicación AWS EC2 win-x64
Solución
Mantenga <PublishReadyToRun>true</PublishReadyToRun> para la aplicación y excluya solo IronPdf.dll:
Curtis Chau tiene una licenciatura en Ciencias de la Computación (Carleton University) y se especializa en el desarrollo front-end con experiencia en Node.js, TypeScript, JavaScript y React. Apasionado por crear interfaces de usuario intuitivas y estéticamente agradables, disfruta trabajando con frameworks modernos y creando manuales bien estructurados y visualmente atractivos.