在运行时无法识别对VSTOAddin.dll.config的更改

时间:2014-06-25 02:52:21

标签: c# vsto

我想更好地了解VSTOAddin.dll.config文件在VSTO中的工作方式。

我不明白为什么我不能使用记事本编辑配置文件,并在下次我的加载项运行时反映这些更改(类似于下面的文章)。

我已成功找到并手动编辑了我的用户设置配置文件。但是对于Application Settings配置文件不能这样做。为什么呢?

我知道应该通过代码或在VS的设计时进行更改。

帮助?!?

http://social.msdn.microsoft.com/Forums/vstudio/en-US/d8104247-3609-42f7-8e06-71860f3f81e2/changes-to-outlookaddindllconfig-not-recognized-at-runtime-how-to-make-responsive-like?forum=vsto

- 编辑 -

感谢PetLahev,我实际上做的事情有点不同。我有三个VSTO插件,它们都引用了一个通用的程序集。这些设置与通用程序集相关联。

这是允许的吗?我注意到程序集实际上是从%appdata%\ local \ assembly ..

运行的

但即使我将我的ClassLibrary1.dll.config文件移动到%appdata%\ local \ assembly ..我无法通过记事本更改它并看到我的应用程序中反映的修改。

2 个答案:

答案 0 :(得分:0)

不确定您使用的应用程序,我尝试使用Excel,而且非常简单

我的app.config看起来像

    <?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="ConfigSettingTest.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false"/>
        </sectionGroup>
        <sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
            <section name="ConfigSettingTest.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/>
        </sectionGroup>
    </configSections>
    <userSettings>
        <ConfigSettingTest.Properties.Settings>
            <setting name="MyUserSettings" serializeAs="String">
                <value>My user settings</value>
            </setting>
        </ConfigSettingTest.Properties.Settings>
    </userSettings>
    <applicationSettings>
        <ConfigSettingTest.Properties.Settings>
            <setting name="MyAppSettings" serializeAs="String">
                <value>My Application settings</value>
            </setting>
        </ConfigSettingTest.Properties.Settings>
    </applicationSettings>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup></configuration>

和读取userSettings和applicationSettings的代码很简单,就像那样

 public static void test()
        {
            System.Windows.Forms.MessageBox.Show(Properties.Settings.Default.MyUserSettings);
            System.Windows.Forms.MessageBox.Show(Properties.Settings.Default.MyAppSettings);
        }

如果我转到bin文件夹并通过记事本更改值,然后运行Excel,我将获得更改的值

答案 1 :(得分:0)

我最终使用了本文第三部分中描述的自定义部分 http://www.codeproject.com/Articles/16466/Unraveling-the-Mysteries-of-NET-Configuration