코드를 사용하여 아래 app.config 파일에서 StartingMonthColumn 및 CategoryHeadingColumn을 읽으려고합니다.
ConfigurationSettings.AppSettings["StartingMonthColumn"]
그러나 null을 반환하고 ConfigurationSettings.AppSettings.Count도 0을 반환합니다.
내 Windows 응용 프로그램에서 이것을 읽도록 도와주세요.
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CTARepository.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CTARepository.Properties.Settings>
<setting name="Setting" serializeAs="String">
<value />
</setting>
</CTARepository.Properties.Settings>
</userSettings>
<appSettings>
<add key="StartingMonthColumn" value="7"/>
<add key="CategoryHeadingColumn" value="1"/>
</appSettings>
</configuration>
답변
구성 설정 .AppSettings가 있다 되지 않는 , 당신은 사용해야 구성 관리자 .AppSettings을 (당신에 대한 참조를 추가해야합니다 대신 System.Configuration를 )
int value = Int32.Parse(ConfigurationManager.AppSettings["StartingMonthColumn"]);
앱 설정을 읽는 데 여전히 문제가 있으면 app.config
파일 이름이 올바른지 확인하십시오 . 특히, 실행중인 어셈블리에 따라 이름을 지정 MyApp.exe.config
해야합니다. 즉와 동일한 디렉토리에 있어야합니다 MyApp.exe
.
답변
답변
ConfigurationSettings.AppSettings는 더 이상 사용되지 않습니다 ( 여기 참조).
http://msdn.microsoft.com/en-us/library/system.configuration.configurationsettings.appsettings.aspx
즉, 여전히 작동해야합니다.
제안 사항이지만 응용 프로그램 구성이 실행 파일에서 사용중인 구성인지 확인 했습니까?
디버거를 연결하고 다음 값을 확인하십시오.
AppDomain.CurrentDomain.SetupInformation.ConfigurationFile
그런 다음 구성 파일을 열고 섹션을 확인하십시오.
답변
답변
이:
Console.WriteLine( "StartingMonthColumn is {0}", ConfigurationManager.AppSettings["StartingMonthColumn"]);
나를 위해 잘 작동합니다.
참고 ConfigurationManager
에 System.Configuration
(당신이 원하는 가능성이 있습니다 있도록 네임 스페이스 using System.Configuration;
문을), 그리고 당신이 읽을 것은 문자열 유형이 있기 때문에 당신이 숫자로 사용하기에 무엇을 읽고 분석해야한다는 점.
또한 system.configuration.dll
프로젝트 또는 빌드 스크립트에서 참조로 설정해야합니다 .
답변
이유는 간단합니다. 호출 ConfigurationSettings.AppSettings
이 필요한 구성 파일을 반환하지 않습니다. 다음 방법 중 하나를 시도하십시오.
- 응용 프로그램 구성의 이름이 응용 프로그램의 exe 파일과 동일한 이름인지 확인하십시오 (예 : MyApp.exe.config와 같이 확장명이 .config 임)
- 또는 당신은 사용할 수 있습니다
ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location).AppSettings["StartingMonthColumn"]
도움이 되었기를 바랍니다
답변
프로젝트를 다시 빌드하십시오- App.config
빌드 라이브러리에서 “<YourProjectName.exe> .config” 의 내용을 복사합니다 .