[英]C# for deployement how to add settings of Library Project to the Main executeable project
我在Visual Studio 2010中工作,那里有一个主项目和另外两个库项目,并且在其中添加了参考。 每个项目都有一个设置文件。 构建解决方案后,对于主项目只有一个.config文件,但对于库项目没有.config文件。 因此,我无法从外部更改这些库项目的设置。
那么,我可以将库项目的.config文件放入我的debug / release文件夹中,该问题的解决方案是什么?
app.config
<?xml version="1.0"?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="Communicator.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="DatabaseManager.Database.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<Communicator.Properties.Settings>
<setting name="ApplicationConfigsDirectory" serializeAs="String">
<value>\Application_Configs</value>
</setting>
<setting name="MaxMeterConn" serializeAs="String">
<value>10000</value>
</setting>
<setting name="MaxPhyConn" serializeAs="String">
<value>20000</value>
</setting>
<setting name="ServerIP" serializeAs="String">
<value>0.0.0.0</value>
</setting>
<setting name="Port" serializeAs="String">
<value>1114</value>
</setting>
<setting name="TCPTimeOut" serializeAs="String">
<value>3900000000</value>
</setting>
<setting name="isTCPTimeOut" serializeAs="String">
<value>True</value>
</setting>
<setting name="SchedulerPoolingTime" serializeAs="String">
<value>480000</value>
</setting>
<setting name="startKAScheduler" serializeAs="String">
<value>True</value>
</setting>
<setting name="MinCacheAge" serializeAs="String">
<value>00:02:00</value>
</setting>
<setting name="MaxCahceAge" serializeAs="String">
<value>00:05:00</value>
</setting>
<setting name="SaveLogToDBFlag" serializeAs="String">
<value>True</value>
</setting>
<setting name="Instance" serializeAs="String">
<value>MDC_Tester</value>
</setting>
</Communicator.Properties.Settings>
<DatabaseManager.Database.Properties.Settings>
<Setting Name="Server" Type="System.String" Scope="Application">
<Value Profile="(Default)">192.168.30.181</Value>
</Setting>
<Setting Name="Database" Type="System.String" Scope="Application">
<Value Profile="(Default)">tester</Value>
</Setting>
<Setting Name="UserID" Type="System.String" Scope="Application">
<Value Profile="(Default)">root</Value>
</Setting>
<Setting Name="pswd" Type="System.String" Scope="Application">
<Value Profile="(Default)">nothing</Value>
</Setting>
<Setting Name="MaxPoolSize" Type="System.Int32" Scope="Application">
<Value Profile="(Default)">512</Value>
</Setting>
</DatabaseManager.Database.Properties.Settings>
</applicationSettings>
<system.runtime.caching>
<memoryCache>
<namedCaches>
<add name="default"
cacheMemoryLimitMegabytes="1024"
pollingInterval="00:01:30" />
</namedCaches>
</memoryCache>
</system.runtime.caching>
<startup><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/></startup>
</configuration>
这是设置和配置文件的预期行为。 您需要将配置部分从库项目复制到主项目中。 您还需要将相应的section元素添加到applicationSettings部分组中:
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section name="SomeLibrary.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
<section name="MainProject.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
然后稍后在主配置中:
<applicationSettings>
<SomeLibrary.Properties.Settings>
<setting name="SomeSetting" serializeAs="String">
<value>Whatever</value>
</setting>
</SomeLibrary.Properties.Settings>
<MainProject.Properties.Settings>
<setting name="MainSetting" serializeAs="String">
<value>Yada yada</value>
</setting>
</MainProject.Properties.Settings>
</applicationSettings>
上面,在主项目中声明了“ SomeLibrary”设置类型,然后在主配置文件中与主项目的设置一起设置了与库有关的设置。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.