2

在我的 WPF caliburn.micro 应用程序中,我使用 ComponentOne 的 C1DocumentViewer 来显示报告。

我在项目中创建了一个新文件夹“报告”并将 .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 回答