我在做什么?我想在Windows窗体应用程序中添加帮助文件。我将pdf添加到项目中的文件夹中,并将属性复制到输出目录设置为始终复制。这会导致文件被复制到bin中的Debug和Release目录。当我运行应用程序时,这在调试模式下完美运行。
问题是什么?这不适用于生产版本。我只针对x64操作系统。 pdf正在复制到 bin / x64 / Release ,但在加载时会崩溃。
这是我加载pdf的方式
string filePath = @"HelpFiles\File.pdf";
Process.Start(Path.Combine(Application.StartupPath, filePath));
有关如何让程序在生产版本上加载文件的任何想法吗?
答案 0 :(得分:1)
您是否尝试打开项目的属性,在 发布 标签下,打开 应用程序文件... < / strong>并包含您的&#34; HelpFiles \ File.pdf &#34;
然后尝试发布它。
编辑:ClickOnce正在安装的所有文件/程序都应包含在无的pdf文件的应用程序文件... 和构建操作属性中内容
答案 1 :(得分:0)
假设您有一个固定的pdf文件,您只需将该文件作为ressource添加到项目中即可。
然后,您将可以String tmpPdfFilePath = Path.Combine(Path.GetTempPath(), String.Format("{0}.pdf", Path.GetTempFileName()));
File.WriteAllBytes(tmpPdfFilePath, Properties.Default.PdfFile);
Process.Start(tmpPdfFilePath);
访问该文件。使用
temp
只有缺点,您每次都将文件复制到Path.GetTempFile()
目录。您可以使用静态文件名而不是Properties.Resources.FileName
来解决这个问题。检查文件是否存在,并根据需要将其复制到temp。
如果在默认的ressource文件中将文件作为ressource添加到项目中,则可以使用
获取文件的字节Offer