使用相对路径时找不到文件

时间:2013-03-14 19:27:32

标签: wpf componentone

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

我在项目中创建了一个新文件夹“Reports”并将.xml放在那里。我使用C1DocumentViewer显示报告。当提供.xml文件的绝对路径时,它工作正常。但当然我需要使用相对路径。因此,如果我将其设为“../../MyProject/Reports/MyReport.xml”,则当我在Visual Studio中运行它时,它可以在我的机器上运行。但是当我使用ClickOnce发布它时,它却找不到该文件。如果我使用“/Reports/MyReport.xml”或“Reports/MyReport.xml”,则相同。 当我在Visual Studio中调试时尝试使用“Reports/MyReport.xml”时,它正在解决方案主项目的bin / Debug中寻找路径“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;
    }

1 个答案:

答案 0 :(得分:0)

只是一个猜测。您的问题可能与您的流程的working directory有关。

  

当进程使用简单文件名或相对文件引用文件时   path(与从根目录的完整路径指定的文件相对)   目录),引用相对于当前解释   该过程的工作目录。

在Visual Studio中运行程序时使用Directory.GetCurrentDirectory()检查,以及在使用ClickOnce发布程序后运行程序时检查它。