使用安装程序部署应用程序's xml文件,如果应用程序不存在,则动态创建它

本文关键字:应用程序 不存在 如果 文件 创建 动态 xml 程序 安装 部署 | 更新日期: 2023-09-27 18:08:48

我有一个xml文件,如:

<CurrentProject>
// Elements like 
// last opened project file to reopen it when app starts
// and more global project independend settings
</CurrentProject>

现在我问自己,我是否应该为我的应用程序的安装程序提供上述空元素的xml文件,或者我应该在应用程序启动时创建这个文件,如果它不存在,否则从它读取值。

考虑到用户可以删除这个文件,如果我的应用程序不再阻止工作。

什么更好,为什么?

:

我所做的对我来说很好,所以我把我的代码贴在这里:)它只是在飞行中创建了xml +结构,并进行了一些安全检查…

public ProjectService(IProjectDataProvider provider)
       {
           _provider = provider;   
           string applicationPath = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
           _projectPath = Path.Combine(applicationPath,@"TBM'Settings.XML");
           if (!File.Exists(_projectPath))
           {
               string dirPath = Path.Combine(applicationPath, @"TBM");
               if (!Directory.Exists(dirPath))
                   Directory.CreateDirectory(dirPath);
               using (var stream = File.Create(_projectPath))
               {
                   XElement projectElement = new XElement("Project");
                   projectElement.Add(new XElement("DatabasePath"));
                   projectElement.Save(stream, SaveOptions.DisableFormatting);   
               }   
           }                
       } 

使用安装程序部署应用程序's xml文件,如果应用程序不存在,则动态创建它

在一个类似的场景中,我最近尝试动态创建初始文件。我选择这个的主要原因是我不依赖于这个文件的存在和有效性。由于这是一个经常被读取/写入的文件,因此它有可能被损坏(例如,如果在文件被写入时电源丢失)。

在我的代码中,我试图打开这个文件进行读取,然后读取数据。如果在这些步骤中的任何地方遇到错误,我只需使用默认值重新创建文件并向用户显示相应的消息。