我有一个许可证文件,我需要在运行时访问它才能创建 pdf 文件。在我创建了内存中的 pdf 之后,我需要对该 pdf 调用一个方法来设置许可证,如下所示:
pdf.SetLicense("pathToLicenseFileHere");
许可证文件与创建 pdf 的 .cs 文件位于同一项目中,但位于单独的文件夹中。我无法让这个简单的事情正确运行,这让我有点难过,因为它真的不应该那么难。 :(
我尝试这样设置路径:
string path = @"\Resources\File.lic";
但这对我来说是行不通的。
编辑:
更多信息。我应该提到这是一个返回 pdf:s 作为 byte[] 的 Web 服务。 Web 服务创建 pdf:s,在此创建过程中,我需要设置许可证文件以从 pdf 文档中删除任何水印。 pdf 本身不保存到光盘,只需要在创建时访问一次许可文件。
最佳答案
所以该文件在您的项目中,您需要将它放在您的应用程序所在的文件夹中的同一文件夹(结构)中。
如果我是对的,有两种方法可以让它发挥作用:
- 将文件标记为Content,以便 VS 将其复制到您的 .exe 文件的文件夹中
- 如果内存访问足够,将其作为资源添加到您的应用
对于解决方案 1(作为内容文件)
- 在解决方案资源管理器中标记文件
- 右键单击文件并选择属性
- 将构建操作更改为内容
现在文件位于 Path.Combine(Path.GetDirectoryName(Application.ExecutablePath), "license.txt")
。
也许您在解决方案目录中添加了一个文件夹,并将需要的文件移到了那里。在这种情况下,VS 将创建您的解决方案中定义的整个结构以放置您的内容文件。在这种情况下,您可能还需要将文件夹信息添加到上面的代码中。
对于解决方案 2(作为内部资源)
- 将想要的文件(如果尚未发生)添加到您的项目(项目 - 添加现有项目)
- 在解决方案资源管理器中双击 MyProject - Properties - Resources.resx
- 单击“添加资源”按钮旁边的向下小箭头,然后选择“添加现有文件...”
- 在对话框中再次选择你喜欢的文件
现在该文件已作为内部资源添加到您的项目中。要从代码访问它,只需使用 Properties.Resources.MyFileName
。根据文件的类型,您将在此处获得一个字符串(如果它是纯文本文件)或一个字节数组(如果它包含任何非文本)。
此外,如果它是一个简单的文本文件,您可以在您的解决方案资源管理器中双击它,编辑它,并在重建后新应用程序包含更改后的文本(如果您的应用程序中需要一些 SQL 语句或 XML 文件,这将非常方便) .
关于c# - 从 C# 项目中的文件夹获取许可证文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2673756/