【问题标题】:Add a file to project resources using C#使用 C# 将文件添加到项目资源
【发布时间】:2013-08-02 21:13:09
【问题描述】:

我正在为使用 xml 设置文件(例如 C:\ssis\mySettingsFile.xml)运行的应用程序创建 SpecFlow 测试。在一项测试中,我想将文件保存到磁盘,然后将该文件添加到我的项目资源并清理磁盘位置。然后,另一个测试会将资源解压缩到一个临时目录并从那里使用它。

我很清楚解包部分,但是有没有办法以编程方式将文件打包到项目资源中,而不是使用 VS GUI 手动将其添加到项目中并将其标记为嵌入式资源?

我知道这是错误的,但我正在考虑以下问题:

string myPath = "C:\ssis\mySettingsFile.xml";
TestHelper.ResourceDirectory = "$\...\...\Project.Folder.Resources";
myResource = TestHelper.PackResource(myPath);
myResource.IsEmbeddedResource = true;

...PackResource 方法将文件保存到项目资源中。

提前致谢!

【问题讨论】:

    标签: c# .net embedded-resource


    【解决方案1】:

    您可以创建一个资源文件夹并将您的 xml 添加到其中。 当您单击项目的属性时,将出现一个资源选项卡,您可以在其中看到您的文件。 要访问该文件,您可以使用 ProjectNamespace.Properties.Resources.yourfilename。

    【讨论】:

    • 谢谢,但我需要在我的测试类中使用 C# 专门添加它,因为在测试运行之前它不存在我想要保存的任何状态。我将尝试添加一个我正在尝试做的示例。
    • 我发现 [this forum post](stackoverflow.com/questions/6926378/…) 似乎在做我想做的事情。但是,经过进一步研究,这可能与我想要/需要的结果相反。由于将文件保存到我的资源中会在每次运行时更改测试的状态,因此它实际上会使测试无效。为了保持一个无菌的测试环境,我将删除我解压缩的所有临时文件,并按照上面的建议手动嵌入我的文件以进行需要它们的测试。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-02
    • 2014-01-29
    • 1970-01-01
    • 1970-01-01
    • 2015-10-13
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多