作成日: 2026/03/25 最終更新日: 2026/03/25
文書種別
制限事項
発生環境
.NET
詳細
.NETアプリを単一ファイルとして発行した場合、スクリプトを含むレポートの実行時に以下のようなエラーが発生します。
System.UriFormatException: Invalid URI: The URI is empty.
System.ArgumentException: Empty path name is not legal. (Parameter 'path')
本現象は.NETの制限に起因して発生しています。
.NETアプリを単一ファイルとして発行した場合、一部のAPIの動作に互換性がなくなります。
詳しくはMicrosoft社のドキュメントをご参照ください。
単一ファイルのデプロイ - API の非互換性 | Microsoft Learn
回避方法
発行プロファイル(.pubxml)やプロジェクトファイル(.csproj)に以下の設定を追加した場合、本現象は発生しません。
<PropertyGroup>
<IncludeAllContentForSelfExtract>true</IncludeAllContentForSelfExtract>
</PropertyGroup>この設定で発行した単一ファイルは、実行時にすべてのファイルが一時フォルダに展開されます。
発行方式の詳細な仕様や注意事項については、前述のドキュメントの「ネイティブ ライブラリ」をご参照ください。
なお、この設定ではカレントディレクトリにレポートファイルが存在しない状態になるため、相対パスでの参照は正しく機能しない可能性があります。
Application.StartupPathなどで実行ファイルのパスを取得し、絶対パスでレポートファイルを参照してください。
var fi = new FileInfo(Path.Combine(Application.StartupPath, "PageReport1.rdlx"));
var rpt = new GrapeCity.ActiveReports.PageReport(fi);もしくは、レポートファイルを埋め込みリソースにする方法も有効です。
具体的な方法は以下のナレッジをご参照ください。