IRONSOFTWAREHOME

.NET Framework 4.8 Windowsサービスの起動例外

Curtis Chau
Curtis Chau
Updated: 2026年6月10日

IronPDF .NET Framework 4.8 Windows Service プロジェクトが、FileNotFoundException の構築時や、ライセンスキーの設定時に ChromePdfRenderer または StackOverflowException を投げます。 同じコードはコンソールまたはWinFormsホストでは正常に動作します。

MSBuild のファサード検出ロジックは、6つのNuGet提供のアセンブリを出力ディレクトリにコピーするのを防ぎます: System.ValueTuple, System.Buffers, System.Threading.Tasks.Extensions, System.Text.Json, System.Text.Encodings.Web, および System.Text.Encoding.CodePages。 MSBuild は、これらのアセンブリの内蔵 .NET 4.8 バージョンを NuGet バージョンと同等と見なしますが、App.config のバインドリダイレクトは NuGet バージョンを要求します。 ファイルの欠落が起動時の例外の原因となっています。

解決策

オプション1: PackageReference への移行(推奨)

Visual Studio で packages.config を右クリックし、Migrate packages.config to PackageReference を選択します。 .csproj ファイルで <AutoGenerateBindingRedirects> が有効になっていることを確認し、その後再ビルドします。 PackageReferenceのMSBuild統合はファサードスキッピングの動作をトリガーしません。

オプション2: AfterBuildターゲットでファサードDLLコピーを強制

packages.config を保持する必要がある場合、この MSBuild ターゲットを .csproj ファイルに追加します:

<Target Name="CopyFacadeAssemblies" AfterTargets="Build">
    <ItemGroup>
        <FacadeAssemblies Include="..\packages\System.Buffers.4.5.1\lib\netstandard2.0\System.Buffers.dll" />
        <FacadeAssemblies Include="..\packages\System.Text.Encodings.Web.6.0.1\lib\net461\System.Text.Encodings.Web.dll" />
        <FacadeAssemblies Include="..\packages\System.Text.Json.6.0.11\lib\net461\System.Text.Json.dll" />
        <FacadeAssemblies Include="..\packages\System.Text.Encoding.CodePages.5.0.0\lib\net461\System.Text.Encoding.CodePages.dll" />
        <FacadeAssemblies Include="..\packages\System.Threading.Tasks.Extensions.4.5.4\lib\net461\System.Threading.Tasks.Extensions.dll" />
        <FacadeAssemblies Include="..\packages\System.ValueTuple.4.5.0\lib\net47\System.ValueTuple.dll" />
    </ItemGroup>
    <Copy SourceFiles="@(FacadeAssemblies)" DestinationFolder="$(OutputPath)" SkipUnchangedFiles="true" />
</Target>
XML

バージョン番号を調整して、packages ディレクトリで復元された正確なバージョンに一致させます。

ファサード参照で <Private>True</Private> (Copy Local) を設定しても問題は解決しません; MSBuildのファサード検出はコピーのステップを依然としてブロックします。

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 20,878,335バージョン:2026.9リリースされたばかり

あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronPdf
nuget.org/packages/IronPdf/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. ブラウズを選択し、"IronPDF"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

またはここからWindowsインストーラーをダウンロードする。

  1. IronPDFを~/Libsなどの場所に解凍し、ソリューションディレクトリ内に配置する
  2. Visual Studioソリューションエクスプローラーで参照を右クリックし、"IronPDF.dll"をブラウズして選択

ライセンスは$999から

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。