ReadyToRun veya Zamanında Ön Derleme (AOT) Kullanma

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

.NET ReadyToRun (R2R), zamanında ön planlanan (AOT) bir derleme biçimidir.

Dağıtım sırasında ReadyToRun derlemeyi etkinleştirmek, kurcalama korumasını ihlal edebilir ve aşağıdaki gibi istisnalara neden olabilir:

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

Neden

Microsoft belgelerine göre, SDK, uygulama ile dağıtılan bütünleştirilmiş kodları ön derleyecektir. Bağımsız uygulamalar için, bu montajlar seti çerçeveyi içerecek. C++/CLI ikili dosyalarının ReadyToRun derlemesi için uygun olmadığını belirtmek önemlidir.

Çözüm

HazırÇalıştır işlemesinden belirli derlemeleri hariç tutmak için proje dosyanızdaki <PublishReadyToRunExclude> listesini kullanın. Örneğin, IronPdf.dll derlemesini hariç tutmak için:

<ItemGroup>

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

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

Bu XML parçacığı, belirtilen derlemelerin HazırÇalıştır ile önceden derlenmesini önlemek ve bu sayede potansiyel lisanslama veya kurcalama sorunlarının önüne geçmek için proje dosyanıza (.csproj) eklenmelidir.

Sist. Ortam.FailFast İlk IronPDF Çağrısında

Bazı Windows dağıtımlarında, IronPDF ilk IronPDF çağrısında uygulama seviyesinde günlük çıktısı olmadan işlemi anında çökertir. Windows Olay Günlüğü benzer bir giriş kaydeder:

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[])

Bu, yukarıdaki lisanslama istisnasından farklı bir başarısızlıktır. Çökme, normal loglama kullanılabilir hale gelmeden önce, statik başlatma sırasında gerçekleşir, bu nedenle işlem sonlanmadan önce IronPDF günlük satırları görünmez.

Bu desen, Windows Server üzerindeki IIS'de barındırılan ASP.NET Core uygulamalarında PublishReadyToRun etkinleştirildiğinde doğrulanmıştır. Yapıyabilir:

  • IronPDF 2026.4.1
  • .NET 10
  • Windows Server 2025 Datacenter'deki IIS (w3wp.exe)
  • AWS EC2 win-x64 yayımlama hedefi

Çözüm

Uygulama için <PublishReadyToRun>true</PublishReadyToRun> saklayın ve yalnızca IronPdf.dll hariç tutun:

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

Tam bir .csproj örneği:

<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

Güncellemeyi .csproj yaptıktan sonra, uygulamayı yeniden yayınlayın, CD BYU yapın ve IIS sitesini yeniden başlatın veya Uygulama Havuzunu geri dönüştürün.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku
Başlamaya Hazır mısınız?
Nuget İndirmeler 19,936,792 | Sürüm: 2026.7 yeni yayınlandı
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronPdf
bir örnek çalıştır HTML'nizi bir PDF'ye dönüştüğünü izleyin.