发布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时,找不到这些文件。
答案 0 :(得分:1)
那是因为你的文件不在exe中。我最近遇到了同样的问题。
听起来你需要处理你的资源 - 有几种方法可以解决这个问题,微软有full explanation here个资源,包括使用链接和嵌入式资源,以及与其他优秀指南的链接。
我假设你正在使用Visual Studio,在这种情况下这应该可行;
ALT
+ ENTER
)Resource
Copy if newer
......你应该好好去。
答案 1 :(得分:0)
我认为它会引发异常,因为该机器上不存在该文件。您可以在属性窗口中将Build Action
设置为Content
,将Copy to Output Directory
设置为Copy Always
或Copy If Newer
。
这些设置将确保您将文件输出到输出中。