我想要我的应用程序的路径来加载水晶报告,
Dim Report As New ReportDocument
Report.Load("D:\xxx\xx\x\ Report.rpt")
而不是硬编码我需要使用代码的路径,因为我不知道我的客户将在哪里安装此应用程序。
所以我尝试了以下代码
filepath = Path.GetDirectoryName(Application.ExecutablePath)
但它返回路径为D:\ xxx \ xx \ x \ bin \
我不想在我的路径中使用Bin,因为我的报告在“D:\ xxx \ xx \ x \ Report.rpt”中可用
那我能在这做什么呢?
答案 0 :(得分:4)
当您的应用程序在IDE(DEBUG或RELEASE)中运行时,可执行文件路径由项目的属性(项目的输出目录属性)中的项目属性定义。 部署应用程序后,路径就是您期望的路径。
要解决您的情况,您应该在每个报告文件上设置属性Copy To Output Directory
。通过这种方式,IDE将在项目属性
Output Directory
的任何位置复制报告
另一个选项(更灵活的选项,但需要更多代码)是在配置文件中定义包含报告位置的自定义设置。您可以在部署期间使用手动或自动更新的报告路径更新此设置(或者在需要将报告移动到其他位置之后)。
当然,在加载报表时,您应该查看此属性并相应地构建路径
答案 1 :(得分:0)
尝试
filepath = Path.GetDirectoryName(Application.ExecutablePath + "\..")
将返回bin之前的文件夹。