我花了最后两个小时谷歌搜索没有结果,所以......
我正在开发一个使用XML文件来保存数据的应用程序。这些文件应该与程序可执行文件存在于同一目录中。我用:
string filePath = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + "\\xml\\filename.xml";
有效。
我在Inno Setup中创建了安装文件。这也很有效,将我的XML文件复制到我想要的位置。
我直接从安装文件夹,从“开始”菜单图标,从桌面快捷方式打开我的应用程序,它可以正常工作。
我对我的程序进行了一些更改,然后关闭它并再次启动它。一切都很好:所有保存的更改都从XML中读回。
但是我打开指定的XML文件并且没有任何更改!
我不会打扰,因为至少它有效,但是:
仅当程序安装到 Program Files 时才会发生这种情况。如果我将其安装到我的文档,则更改将显示在XML文件中,重新安装后,将按预期恢复默认设置。
我的问题是:
修改 最后在C:\ Users [USERNAME] \ AppData \ Local \ VirtualStore \ Program Files [APPNAME]
中找到这些文件答案 0 :(得分:1)
检查保存在本地应用程序数据文件夹中的内容(对于Windows 7,它是\ Users [USERNAME] \ AppData \ Local \)。
看起来你的应用程序没有权利在ProgramFiles文件夹中保存东西并将其保存在可能的位置,可能是在这个位置:
String appData =
Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData);
您也可以尝试以管理员身份运行应用程序,并检查xml数据的更改是否仍未显示。
答案 1 :(得分:0)
不能打印出
的值 System.IO.Path.GetDirectoryName(Application.ExecutablePath)
那么你应该能够看到你的xml文件的存储位置,如果它是一个控制台应用程序,只需使用Console打印,如果它是WPF打印到标签或其他东西