IRONSOFTWAREHOME

Użyj ReadyToRun lub kompilacji Ahead-Of-Time (AOT)

Curtis Chau
Curtis Chau
Updated: 29 czerwca 2026

.NET ReadyToRun (R2R) to forma kompilacji ahead-of-time (AOT).

Włączenie kompilacji ReadyToRun podczas wdrażania może naruszać ochronę przed manipulacją i powodować wyjątki takie jak poniżej:

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

Przyczyna

Według dokumentacji Microsoft, SDK wstępnie skompiluje zestawy, które są dystrybuowane z aplikacją. W przypadku aplikacji samodzielnych, ten zbiór zestawów będzie zawierał framework. Ważne jest, aby pamiętać, że binaria C++/CLI nie kwalifikują się do kompilacji ReadyToRun.

Rozwiązanie

Aby wykluczyć konkretne zestawy z przetwarzania ReadyToRun, użyj listy <PublishReadyToRunExclude> w pliku projektu. Na przykład, aby wykluczyć zestaw IronPdf.dll:

<ItemGroup>
    <!-- Excludes IronPdf.dll from ReadyToRun compilation -->
    <PublishReadyToRunExclude Include="IronPdf.dll" />
</ItemGroup>
XML

Ten fragment XML należy dodać do pliku projektu (.csproj), aby zapobiec wstępnym kompilacjom określonych zestawów z ReadyToRun, unikając tym samym potencjalnych problemów licencyjnych lub ingerencji.

System.Environment.FailFast przy pierwszym wywołaniu IronPDF

W niektórych wdrożeniach Windows, IronPDF natychmiast przerywa proces przy pierwszym wywołaniu IronPDF bez wyjścia dziennika na poziomie aplikacji. Dziennik zdarzeń Windows rejestruje wpis podobny do:

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

To inny błąd niż wyjątek licencjonowania powyżej. Krach występuje podczas statycznej inicjalizacji przed dostępnością normalnego logowania, dlatego nie pojawiają się linie dziennika IronPDF przed zakończeniem procesu.

Wzorzec ten został potwierdzony w aplikacjach ASP.NET Core hostowanych w IIS na Windows Server z włączoną opcją PublishReadyToRun. Zostało to odtworzone na:

  • IronPDF 2026.4.1
  • .NET 10
  • IIS (w3wp.exe) on Windows Server 2025 Datacenter
  • AWS EC2 win-x64 docelowy cel publikacji

Rozwiązanie

Zachowaj <PublishReadyToRun>true</PublishReadyToRun> dla aplikacji i wykluczaj tylko IronPdf.dll:

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

Pełny przykład .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>
XML

Po zaktualizowaniu .csproj, ponownie opublikuj aplikację, wdroż ją ponownie i zrestartuj witrynę IIS lub odśwież pętlę aplikacji.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podręczników.

...
Czytaj więcej

Gotowy, aby rozpocząć?

Nuget Downloads 20,667,543Wersja:2026.7właśnie wydany

Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.7

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz opcję Przeglądaj i wyszukaj „IronPdf”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.7

Pobierz teraz

lub pobierz instalator Windows tutaj.

  1. Pobierz i rozpakuj IronPDF do lokalizacji takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań programu Visual Studio kliknij prawym przyciskiem myszy opcję Odwołania. Wybierz opcję Przeglądaj, „IronPdf.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Zarezerwuj swoje darmowe Demo na żywo
Booking Badge

Zaufane przez miliony inżynierów na całym świecie

Logotypy klientów Iron Software
Otrzymaj swoje Konsultacja Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta