Wix app.config应用程序和用户范围

Wix app.config应用程序和用户范围,wix,app-config,settings,Wix,App Config,Settings,我在projects app.config中定义了许多userSettings和applicationSettings,用户可以修改UI中的userSettings,必要时我们可以修改applicationSettings <!--main installation location--> <Directory Id="ProgramFilesFolder"> <Directory Id="fooFolder" Name="foo">

我在projects app.config中定义了许多userSettings和applicationSettings,用户可以修改UI中的userSettings,必要时我们可以修改applicationSettings

  <!--main installation location-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="fooFolder" Name="foo">
      <Directory Id="INSTALLFOLDER" Name="Application Name" />
    </Directory>
  </Directory>

  <!-- users appdata folder-->
  <Directory Id="LocalAppDataFolder" Name="AppData">
    <Directory Id="AppRootDirectory" Name="Application Name" />
  </Directory>

</Directory>
我计划做的是在APPDIR C:\Program Files{Company}{Application}文件夹中的exe旁边放置应用程序设置,这意味着用户无法编辑该文件,并在LocalAppDataFolder C:\users\\AppData\Local{Company}{Application}文件夹中设置用户设置,以便应用程序可以写入该文件

  <!--main installation location-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="fooFolder" Name="foo">
      <Directory Id="INSTALLFOLDER" Name="Application Name" />
    </Directory>
  </Directory>

  <!-- users appdata folder-->
  <Directory Id="LocalAppDataFolder" Name="AppData">
    <Directory Id="AppRootDirectory" Name="Application Name" />
  </Directory>

</Directory>
我很感激一些关于如何用Wix最好地实现这一点的建议,或者即使这是实现我期望的目标的正确方法

  <!--main installation location-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="fooFolder" Name="foo">
      <Directory Id="INSTALLFOLDER" Name="Application Name" />
    </Directory>
  </Directory>

  <!-- users appdata folder-->
  <Directory Id="LocalAppDataFolder" Name="AppData">
    <Directory Id="AppRootDirectory" Name="Application Name" />
  </Directory>

</Directory>
我目前有:

  <!--main installation location-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="fooFolder" Name="foo">
      <Directory Id="INSTALLFOLDER" Name="Application Name" />
    </Directory>
  </Directory>

  <!-- users appdata folder-->
  <Directory Id="LocalAppDataFolder" Name="AppData">
    <Directory Id="AppRootDirectory" Name="Application Name" />
  </Directory>

</Directory>
这可以很好地工作,并将配置文件放在APPDIR中,但我不知道如何处理LocalAppDataFolder

  <!--main installation location-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="fooFolder" Name="foo">
      <Directory Id="INSTALLFOLDER" Name="Application Name" />
    </Directory>
  </Directory>

  <!-- users appdata folder-->
  <Directory Id="LocalAppDataFolder" Name="AppData">
    <Directory Id="AppRootDirectory" Name="Application Name" />
  </Directory>

</Directory>

我的方法正确吗?

好的,所以这是您第一次使用自动生成的设置类的保存方法修改任何用户设置时注意的问题:

  <!--main installation location-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="fooFolder" Name="foo">
      <Directory Id="INSTALLFOLDER" Name="Application Name" />
    </Directory>
  </Directory>

  <!-- users appdata folder-->
  <Directory Id="LocalAppDataFolder" Name="AppData">
    <Directory Id="AppRootDirectory" Name="Application Name" />
  </Directory>

</Directory>
Settings.Default.MyProperty = "foo";
Settings.Default.Save();
这将导致在LocalAppDataFolder\{Company}\{Application}\{ProductName\u xxx}\{Version}中创建一个user.config文件,其中仅包含app.config的userSettings部分的内容。

这是一个很好的概述;不要错过升级部分。
  <!--main installation location-->
  <Directory Id="ProgramFilesFolder">
    <Directory Id="fooFolder" Name="foo">
      <Directory Id="INSTALLFOLDER" Name="Application Name" />
    </Directory>
  </Directory>

  <!-- users appdata folder-->
  <Directory Id="LocalAppDataFolder" Name="AppData">
    <Directory Id="AppRootDirectory" Name="Application Name" />
  </Directory>

</Directory>