【问题标题】:change embedded resource file during runtime在运行时更改嵌入的资源文件
【发布时间】:2017-12-20 23:59:59
【问题描述】:

我编写了一个程序,该程序使用资源(嵌入的 TEXT 文件)作为程序的默认配置。我希望能够允许用户更改此默认行为。我想知道如何修改嵌入的资源文件,以便以后使用程序时它会使用修改后的版本。

感谢帮助

【问题讨论】:

    标签: c# resources embedded-resource


    【解决方案1】:

    我认为您正在寻找的是settings 文件。 嵌入的资源被编译到您的 exe/dll 中,不能被修改。

    【讨论】:

    • 谢谢,我希望我能在这个项目开始时使用设置,目前将所有使用的链接转换为设置是有风险的。
    【解决方案2】:

    这里是更新嵌入在项目中的文件的一种方法,这里是一个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);
    

    查看全文:SAVING AN EMBEDDED RESOURCE XML FILE AT RUNTIME IN C#

    【讨论】:

    • 我尝试了上面的代码,但我一直从该行得到 null:Stream rgbxml = thisAssembly.GetManifestResourceStream("YourNamespace.fileName.xml"); 我可能正在放置一个糟糕的命名空间,但我似乎无法弄清楚为什么
    • @james - 如果可能的话,我分享了全文的链接,看看它......它解释了所有事情
    • 阅读链接中的信息,我不确定这是否符合我的要求。我不确定这会修改文件只保存它。
    【解决方案3】:

    你最好尝试使用属性来保存设置,例如: 属性.设置.默认

    要添加属性,请在解决方案资源管理器中右键单击 ->Properties->Settings(Tab)

    然后添加您需要的任何内容,然后从 .Default 进行代码访问

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

    希望对你有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-06
      • 1970-01-01
      • 1970-01-01
      • 2011-08-19
      • 1970-01-01
      • 1970-01-01
      • 2015-09-10
      相关资源
      最近更新 更多