我想更好地了解VSTOAddin.dll.config文件在VSTO中的工作方式。
我不明白为什么我不能使用记事本编辑配置文件,并在下次我的加载项运行时反映这些更改(类似于下面的文章)。
我已成功找到并手动编辑了我的用户设置配置文件。但是对于Application Settings配置文件不能这样做。为什么呢?
我知道应该通过代码或在VS的设计时进行更改。
帮助?!?
- 编辑 -
感谢PetLahev,我实际上做的事情有点不同。我有三个VSTO插件,它们都引用了一个通用的程序集。这些设置与通用程序集相关联。
这是允许的吗?我注意到程序集实际上是从%appdata%\ local \ assembly ..
运行的但即使我将我的ClassLibrary1.dll.config文件移动到%appdata%\ local \ assembly ..我无法通过记事本更改它并看到我的应用程序中反映的修改。
答案 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