更改MyOutlookAddin.dll.config中的applicationSettings中的值无法识别的代码

问题描述:

我已经部署了一个Outlook2007Addin,并且在测试中我注意到我对app.config所做的更改无法识别。也就是说,我编辑安装目录中的MyOutlookAddInName.dll.config,保存更改,然后调出Outlook。更改MyOutlookAddin.dll.config中的applicationSettings中的值无法识别的代码

我的外挂程序的行为正确,除了被忽略的改变的值的事实。相反,它使用“原始”值进行操作。我该如何让这个插件能够立即响应dll.config中的更改?

这是从我的初始化代码片段,我已经与调试验证值是从app.config中确实牵强:

private string _TRIM_archiveFolderName = "TRIM Archives"; 
    private string _specialFolder = @"\INBOX\TRIM\";   // eg. \INBOX\TRIM makes a big difference 
    private string saveAttachments = "Yes"; 
    private void ThisAddIn_Startup(object sender, System.EventArgs e) 
    { 
     log.Info("Application Start"); 
     try 
     { 
      _TRIM_archiveFolderName = Properties.Settings.Default.TRIM_ArchiveFolderName; 
      _specialFolder = Properties.Settings.Default.TRIM_Upload_INBOX_Path; 
      saveAttachments = Properties.Settings.Default.SaveAttachments; 
     } 
     catch (Exception ex) 
     { 
      log.Warn("App.Config error detected and ignored",ex); 
     } 

这里是Settings.settings文件中的XML视图我的Visual Studio项目:

<?xml version='1.0' encoding='utf-8'?> 
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="CBMI.Outlook2007AddInV7.Properties" GeneratedClassName="Settings"> 
    <Profiles /> 
    <Settings> 
    <Setting Name="TRIM_ArchiveFolderName" Type="System.String" Scope="Application"> 
     <Value Profile="(Default)">TRIM Archives</Value> 
    </Setting> 
    <Setting Name="TRIM_Upload_INBOX_Path" Type="System.String" Scope="Application"> 
     <Value Profile="(Default)">\INBOX\TRIM\</Value> 
    </Setting> 
    <Setting Name="SaveAttachments" Type="System.String" Scope="Application"> 
     <Value Profile="(Default)">Yes</Value> 
    </Setting> 
    <Setting Name="TRIMconnectionParms" Type="System.String" Scope="Application"> 
     <Value Profile="(Default)">60~GROUPER~1137</Value> 
    </Setting> 
    </Settings> 
</SettingsFile> 

这里是我的dll.config看起来如何在安装目录(之前我改变了它,并保存修改):

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <sectionGroup name="applicationSettings" 
     type="System.Configuration.ApplicationSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"> 
     <section name="CBMI.Outlook2007AddInV7.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" /> 
     <section name="FileServiceProxy.Properties.Settings" 
      type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" 
      requirePermission="false" /> 
    </sectionGroup> 
    </configSections> 
    <applicationSettings> 
    <CBMI.Outlook2007AddInV7.Properties.Settings> 
     <setting name="TRIM_ArchiveFolderName" serializeAs="String"> 
     <value>TRIMArchives</value> 
     </setting> 
     <setting name="TRIM_Upload_INBOX_Path" serializeAs="String"> 
     <value>\INBOX\TRIM\</value> 
     </setting> 
     <setting name="SaveAttachments" serializeAs="String"> 
     <value>Yes</value> 
     </setting> 
     <setting name="TRIMconnectionParms" serializeAs="String"> 
     <value>60~GROUPER~1137</value> 
     </setting> 
    </CBMI.Outlook2007AddInV7.Properties.Settings> 
    <FileServiceProxy.Properties.Settings> 
     <setting name="FileServiceProxy_ASMXproxy_FileService" serializeAs="String"> 
     <value>http://mdwdata/sdkTrimFileServiceASMX/fileservice.asmx</value> 
     </setting> 
    </FileServiceProxy.Properties.Settings> 
    </applicationSettings> 

有可能是解决这个其他方法。但是,我在MSDN上打开了这个线程,有人通过建议ConfigurationManager.RefreshSection方法帮助我。参见:

http://social.msdn.microsoft.com/Forums/en-US/vsto/thread/d8104247-3609-42f7-8e06-71860f3f81e2