使用 ReadyToRun 或 預先編譯 (AOT)

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

.NET ReadyToRun (R2R) 是一種預先編譯 (AOT) 的形式。

在部署期間啟用 ReadyToRun 編譯可能會違反防篡改保護機制,並導致出現以下類型的例外狀況:

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

理由

根據 Microsoft 文件所述,SDK 會預先編譯隨應用程式分發的組件。 對於獨立應用程式,這組組件將包含框架。 請注意,C#/CLI 二進位檔不適用於 ReadyToRun 編譯。

解決方案

若要將特定組件排除在 ReadyToRun 處理之外,請在專案檔案中使用 <PublishReadyToRunExclude> 清單。例如,若要排除 IronPdf.dll 組件:

<ItemGroup>

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

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

請將此 XML 片段新增至您的專案檔案 (.csproj),以防止指定的組件透過 ReadyToRun 預先編譯,從而避免潛在的授權或篡改問題。

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 19,014,616 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronPdf
執行範例 觀看您的 HTML 轉為 PDF。