如何在 C# 应用程序中使用解决方案资源管理器文件

How to use solution explorer files in c# application

我用 c# 开发了一个小应用程序。在此应用程序中,我在解决方案资源管理器中添加了一个名为 Data.txt 的文本文件和包含大约 20 张编号为 1 - 20 的图像的文件夹,以便这些图像对用户隐藏并嵌入到应用程序中。我已将这些文件属性设置为 "None" 和 CopyToOutput "false"(也尝试将 属性 设置为 "Content")。

问题是,当我在包含我的项目和文件的 Windows 8.1 笔记本电脑上调试我的程序时,它运行良好,但是当我尝试 运行 发布文件时(也尝试过调试文件)在我的 Win 7 Home Basic 台式电脑上,它停止工作(意味着它不加载这些文件)。这是我的代码:

// Code to change images in picture box after small interval of time
private void timer1_Tick(object sender, EventArgs e)
    {
        try
        {
            if (Angle > 20)
            {
                Angle = 1;
            }

            picBackground.BackgroundImage.Dispose();
            picBackground.BackgroundImage = new Bitmap("../../" + Angle + ".png");
            Angle += 5;

        }
        catch
        { }
    }

// Here is constructor of the class
public RateFiles()
{
    try
    {
        string[] data = File.ReadAllLines("../../Data.txt");
    }
    catch (Exception ex)
    {
        MessageBox.Show(ex.Message.ToString(), "Error");
    }

    // Object loads the strings
    obj.LoadData(data);
}

图片框背景需要在 1 秒后更改,但它不起作用并且 File.ReadAllLines("../../Data.txt") 出现错误 "Could not find file 'C:\Users\Dell\Data.txt'" .

我该如何解决这个问题?

问题是您试图访问这些文件,就好像您在程序集外部分发文件一样,并将它们设置为不复制,这会将它们从要分发的文件中排除。

要执行您想要的操作,您需要将文件设置为资源,然后在您的应用程序中按原样访问它们。尝试以下 link 以了解如何使用 VS 在 C# 中创建和访问资源。

https://msdn.microsoft.com/en-us/library/7k989cfy%28v=vs.90%29.aspx