更新:我在下面有一个问题,但实际上我的问题可以通过提出一个稍微不同的问题来解决。为什么在某些机器上我的应用程序会抛出错误:
Configuration system failed to initialize - System.Configuration - at System.Configuration.ConfigurationManager.PrepareConfigSystem()
而在其他机器上却没有。此处也描述了错误.NET 3.5 - 配置系统初始化失败异常 https://stackoverflow.com/questions/443235/net-3-5-configuration-system-failed-to-initialize-exception是由我的 app.config 顶部缺少 configSections 元素引起的。当然,问题可以通过放入此部分来解决,但由于某种原因,我的项目解决方案中包含此部分的 app.config 不是在部署后在 appdata 文件夹中创建的配置。
原问题:
为什么我的用户配置文件在部署到某些机器上而不是其他机器上时会缺少此部分?我怎样才能确保它不丢失。
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="NameOfAddin_Add_in.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
一些背景。我正在运行 Outlook 2007 和 2010 的 win 7 计算机上通过单击一次 Visual Studio 安装程序部署 vsto 加载项。
该加载项读取一些设置并将其写入 app.config 文件,该文件与 exe 不同,存储在本地用户的 appdata 文件夹中。
但是,在某些计算机上,我收到错误“配置系统无法初始化 - System.Configuration - at System.Configuration.ConfigurationManager.PrepareConfigSystem()”
在我的例子中,这是由 xml 中缺少上述元素引起的。然而,在其他机器上,configSections 并没有丢失。该问题与所使用的 Outlook 版本无关。