Я развернул Outlook2007Addin и заметил при тестировании, что изменения, внесенные в мой app.config, не распознаются.То есть я редактирую MyOutlookAddInName.dll.config в каталоге установки, сохраняю изменения и затем запускаю Outlook.
Моя надстройка работает правильно, за исключением того факта, что измененные значения игнорируются.Вместо этого он работает с «оригинальными» значениями.Как я могу сделать это дополнение мгновенно реагировать на изменения в 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);
}
Вот XML-представление Файл settings.settings в моем проекте 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>