2

私の WPF caliburn.micro アプリケーションでは、ComponentOne の C1DocumentViewer を使用してレポートを表示します。

プロジェクトに新しいフォルダ「Reports」を作成し、そこに .xml を配置しました。を使用してレポートを表示しC1DocumentViewerます。.xml ファイルへの絶対パスを指定すると、正常に機能します。もちろん、相対パスを使用する必要があります。したがって、「<code>../../MyProject/Reports/MyReport.xml」にすると、Visual Studio で実行したときに自分のマシンで動作します。しかし、ClickOnce を使用して公開すると、ファイルが見つからないだけです。「<code>/Reports/MyReport.xml」または「<code>Reports/MyReport.xml」を使用しても同じです。Visual Studio でデバッグするときに「<code>Reports/MyReport.xml」を使おうとすると、ソリューションのメイン プロジェクトの bin/Debug でパス「<code>Reports/MyReport.xml」を探します。

助けてください。これが私のコードです:

        protected override void OnViewLoaded(object view)
    {
        base.OnViewLoaded(view);

        var rpt = new C1.C1Report.C1Report();

        rpt.Load(@"Reports/MyReport.xml", "Recent Files Information");

        rpt.DataSource.RecordSource = "MyReportProc(1)";
        rpt.Render();
        Report = rpt.FixedDocumentSequence;
    }
4

1 に答える 1

0

推測です。問題は、プロセスの作業ディレクトリに関連している可能性があります。

プロセスが単純なファイル名または相対パス (ルート ディレクトリからのフル パスで指定されたファイルとは対照的に) を使用してファイルを参照する場合、参照はプロセスの現在の作業ディレクトリに対して相対的に解釈されます。

Visual Studio でプログラムを実行するとき、および ClickOnce で発行した後に実行するときに、 Directory.GetCurrentDirectory()で確認してください。

于 2013-03-15T08:04:55.543 に答える