C#设置xml文件位置

时间:2009-03-16 11:58:54

标签: c# settings

我有一个项目,它根据C#Setting类中的值读入文件。然而,这个值在不同的机器之间发生变化而Id并不是在第一次将程序作为企业环境运行时询问用户,而是在安装程序中设置Id,但文件位于何处?有更简单的方法吗?

这是一个视觉工作室插件,而不是一个独立的程序

10 个答案:

答案 0 :(得分:3)

从你的帖子看来你有一个Windows应用程序? ,您可以在应用程序配置中存储初始值,您可以在Visual Studio中创建安装程序并编写可在安装项目中首次安装时将值写入文件的自定义操作。

答案 1 :(得分:2)

配置文件是您提出要求的最简单方法,但它并不是最好的。实际上,建议不要在这种情况下使用.config文件。

  • 每当用户安装“更新”时,都有覆盖现有更改的风险。

  • 某些商家可能对.config文件有政策限制。

  • 用户无法轻易将设置从一台PC移动到另一台PC。

根据我自己的经验,使用XML,MS-Access,注册表或文本文件来存储用户设置比使用.config文件更有用。

答案 2 :(得分:1)

我相信你在谈论设计师生成的设置(.settings文件)?

确切的路径通常包含某种哈希(检查this链接)。我通常有自己的设置类,我使用XmlSerializer与xml进行序列化,这给了我更大的自由(例如,我认为C#设置文件不允许你添加自定义枚举,或者它们使它成为一个比简单地将它们添加到.settings文件更难做到。

但是,也许在安装过程中无需设置值?例如,您可以添加FirstStartup设置(最初设置为true),您可以在第一次启动应用时读取该设置,然后将其设置为false。这样,您可以在检测到“首次启动”时设置默认设置。

答案 3 :(得分:1)

在安装程序结束时,您肯定需要某种自定义操作。您尚未提及您用于部署应用程序的技术,因此我将不提供任何具体指导。

我建议您在App.config中设置值。这是一个xml文件,在与应用程序相同的目录中将命名为MyApplication.exe.config。如果它已经存在,请将其添加到安装程序中。在安装程序中,添加新设置:

<configuration>
  <appSettings>
    <add key="MySetting" value="My Value"/>
  </appSettings>
</configuration>

在您的代码中,检索设置:

String setting = ConfigurationSettings.AppSettings["MySetting"];

如果这是机器范围的设置,则此安装程序是设置此设置的正确位置。如果您在第一次执行时执行此操作,那么如果运行该应用程序的第一个人是具有有限权限的用户,则会遇到许多文件和目录权限问题。

答案 4 :(得分:0)

注册表或INI文件或XML文件,最适合您。

答案 5 :(得分:0)

最佳选择是注册表。安装应用程序将需要管理员访问权限,因此在安装期间写入注册表不会成为问题。

如果某人意外删除了ini或设置文件,那么程序可能会停止工作。

答案 6 :(得分:0)

你说这是针对企业环境的。您可以为组策略创建管理模板,以在注册表中设置默认值。然后,如果尚未设置默认值,您的程序可以只查询一个注册表值。

答案 7 :(得分:0)

我个人永远不会使用web.config或app.config。只需阅读您自己的xml文件,看看我的帖子: http://www.picnet.com.au/blogs/Guido/post/2009/09/10/XML-Settings-Files-No-more-webconfig.aspx

由于

答案 8 :(得分:0)

回答&#34;文件位于何处&#34;对于那些感兴趣的人来说原始问题的一点(我假设&#34;设置文件&#34;有问题的是&#34;设置文件&#34;项目可从&#34;添加新项目& #34;对话)。

在Win7(可能还有其他所有)中,设置文件将在路径下生成:

  

C:\用户\ [用户] \应用程序数据\本地

此处的文件夹结构取决于您的AssemblyInfo和构建信息,&#34; AssemblyCompany&#34;字段(如果已填充)用于最顶层文件夹,在此下面是复制应用程序可执行文件名的文件夹,后跟构建,最后是设置文件(名为&#34; * .config&#34;)。 / p>

就我而言,完整路径如下:

  

C:\用户\ [用户] \应用程序数据\本地\ [COMPANY_NAME] \ Application.exe_StrongName_zx0v1qxyoass4d0z3mtwe3vbrhaehkjg \ 0.0.5812.21662 \ user.config

答案 9 :(得分:-2)

我的情况不同,我的项目是一个包含app.config文件的类库(dll)。我决定创建4个应用程序设置变量(标题,网址,限制,费率)。要创建它,我右键单击他的项目 - &gt;属性 - &gt;设置。您可以使用此命令在代码中检索此值 - &gt; Settings.Default.title,...等

问题是我要从这个库中实例化5个对象(例如MyProject.MyClass的相同对象),我希望实例能够拥有自己的设置。我的意思是每个实例都有自己的xml设置文件。可以这样做吗?