文件在wpf应用程序的exe中找不到

时间:2013-12-27 09:57:44

标签: asp.net wpf

发布WPF应用程序并生成exe时,我无法获取放置在templates-folder中的文件。当我将我的文件夹和文件复制到bin时它可以工作,或者如果使用

string StartUpPath = AppDomain.CurrentDomain.BaseDirectory.ToString();
//  var gparent = Directory.GetParent(Directory.GetParent(Directory.GetParent(StartUpPath).ToString()).ToString()).ToString();

ReportDocument reportDocument = new ReportDocument();
StreamReader reader = new StreamReader(new FileStream(StartUpPath + @"\Templates\Invoice.xaml", FileMode.Open));

此代码适用于我的本地,但是当我生成exe时,找不到这些文件。

2 个答案:

答案 0 :(得分:1)

那是因为你的文件不在exe中。我最近遇到了同样的问题。

听起来你需要处理你的资源 - 有几种方法可以解决这个问题,微软有full explanation here个资源,包括使用链接嵌入式资源,以及与其他优秀指南的链接。

我假设你正在使用Visual Studio,在这种情况下这应该可行;

  • 右键单击无法访问的文件
  • 选择属性(或按ALT + ENTER
  • 构建操作设置为Resource
  • 复制到输出目录设置为Copy if newer
  • 保存

......你应该好好去。

答案 1 :(得分:0)

我认为它会引发异常,因为该机器上不存在该文件。您可以在属性窗口中将Build Action设置为Content,将Copy to Output Directory设置为Copy AlwaysCopy If Newer

这些设置将确保您将文件输出到输出中。

enter image description here