我的项目app.config中定义了许多userSettings和applicationSettings,用户可以修改UI中的userSettings,我们可以在必要时修改applicationSettings。
我打算做的是在APPDIR C:\ Program Files {Company} {Application}文件夹中将applicationSettings放在exe旁边(这意味着用户无法编辑文件)并在LocalAppDataFolder C:\ Users中使用userSettings \\ AppData \ Local {Company} {Application}以便应用可以写入文件。
我很欣赏有关如何使用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>
<Fragment>
<ComponentGroup Id="ProductComponents" Directory="INSTALLFOLDER">
<Component Id="ProductComponent" Guid="{GUID}">
<File Id="app.config.programfiles" Source="$(var.{ProjectName}.TargetDir)/{TargetName}.exe.config" />
</Component>
</ComponentGroup>
<Fragment>
<DirectoryRef Id="ApplicationProgramsFolder">
<Component Id="ApplicationShortcut" Guid="{GUID}">
<Shortcut Id="ApplicationStartMenuShortcut"
Name="My App"
Description="My App description"
Target="[INSTALLFOLDER]$(var.{App}.TargetFileName)"
WorkingDirectory="INSTALLFOLDER"/>
<RemoveFolder Id="ApplicationProgramsFolder" On="uninstall"/>
<RegistryValue Root="HKCU" Key="Software\{Company}\{Application}" Name="installed" Type="integer" Value="1" KeyPath="yes"/>
</Component>
</DirectoryRef>
这很好用并将配置文件放在APPDIR中,但我不知道如何处理LocalAppDataFolder。
我是以正确的方式接近这个吗?
答案 0 :(得分:0)
好的,所以第一次使用自动生成的Settings类的Save()方法修改任何userSettings时,这将为您解决:
Settings.Default.MyProperty = "foo";
Settings.Default.Save();
导致在LocalAppDataFolder \ {Company} \ {Application} \ {ProductName_xxx} \ {Version}中创建一个user.config文件,其中仅包含app.config的userSettings部分的内容。