在我的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;
}
答案 0 :(得分:0)
只是一个猜测。您的问题可能与您的流程的working directory有关。
当进程使用简单文件名或相对文件引用文件时 path(与从根目录的完整路径指定的文件相对) 目录),引用相对于当前解释 该过程的工作目录。
在Visual Studio中运行程序时使用Directory.GetCurrentDirectory()检查,以及在使用ClickOnce发布程序后运行程序时检查它。