运行时更改嵌入式资源文件

4
我已经编写了一个程序,它使用嵌入的文本文件作为程序的默认配置资源。我希望能够允许用户更改这个默认行为。我想知道如何修改嵌入的资源文件,以便下一次使用程序时可以使用修改后的版本。
感谢您的帮助。
3个回答

4
我想您需要的是一个设置文件。嵌入资源被编译到您的exe/dll中,不应该被修改。

谢谢,我希望在这个项目开始时就使用设置,目前将所有链接转换为设置太冒险了。 - james

3

以下是一种更新项目中嵌入的文件的方法,这里以XML文件为例。您可以根据需要将其更改为txt文件。

string path = Path.Combine(
Environment.GetFolderPath(
Environment.SpecialFolder.ApplicationData), 
Application.CompanyName);

path = Path.Combine(path, Application.ProductName);
path = Path.Combine(path, subFolder);
path = Path.Combine(path, "fileName.xml");

if(!File.Exists(path)){
    Assembly thisAssembly = Assembly.GetExecutingAssembly();
    Stream rgbxml = thisAssembly.GetManifestResourceStream(
"YourNamespace.fileName.xml");          
    XmlDocument doc = new XmlDocument();
    doc.Load(rgbxml);

    doc.PreserveWhitespace = true;
    doc.Save(path);

查看完整文章:在C#运行时保存嵌入的资源XML文件


我尝试了上面的代码,但是从这一行中一直得到 null 值:Stream rgbxml = thisAssembly.GetManifestResourceStream( "YourNamespace.fileName.xml"); 我可能放错了命名空间,但是我似乎无法弄清楚原因。 - james
@james - 我分享了完整文章的链接,如果可能的话请看一下...它解释了所有的事情。 - Pranay Rana
阅读链接中的信息,我不确定这是否符合我的要求。我不确定这是否只修改文件而不保存它。 - james

0

你最好尝试使用属性来保存设置,例如: Properties.Settings.Default

要添加属性,在解决方案资源管理器中右键单击 ->属性 ->设置(选项卡)

然后添加所需内容,然后在代码中从 .Default 访问

要在运行时保存更新的设置,请使用以下方法: Properties.Settings.Default.Save()

希望这可以帮助到你


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接