문제

나는 c# .net 2.0 .dll을 작성하고 있습니다. 더 큰 응용 프로그램. 내 모듈의 Visual Studio 프로젝트에는 myproj.dll의 측면과 함께 myproj.dll.config에 복사되는 app.config 파일이 있습니다.

계획은 .dll이 배포 된 후 MyProj.dll.config가 편집 될 것입니다. 수정 된 로컬 파일에서 내 설정을 읽으려고합니다. LocalFilessettingSobject를 꺼내어 응용 프로그램 이름을 내 .dll로 변경하려고 시도했습니다.

        Properties.Settings config = Properties.Settings.Default;
        SettingsContext context = config.Context;
        SettingsPropertyCollection properties = config.Properties;
        SettingsProviderCollection providers = config.Providers;
        SettingsProvider configFile = Properties.Settings.Default.Providers["LocalFileSettingsProvider"];
        configFile.ApplicationName = Assembly.GetExecutingAssembly().GetName().Name;
        config.Initialize(context, properties, providers);
        config.Reload();

그것은 작동하지 않습니다. 나는 전체 .NET 설정 엉망으로 머리를 감싸기 위해 고군분투하고 있습니다. 이 작업을 완료하기위한 레시피를 원합니다. 또한 .NET 2.0에서 설정이 어떻게 작동하는지에 대한 명확한 설명 (예제 포함)에 대한 링크를 원합니다.

도움이 되었습니까?

해결책

당신은로드해야합니다 x.dll.config (구성 API와 함께) 직접. 모든 자동 파일 처리 (포함 .Settings)는 machine.config/y.exe.config/사용자 설정에 관한 것입니다.

명명 된 구성 파일을 열려면 :

  • 참조 System.Configuration.dll 집회.
  • 사용 System.Configuration
  • 다음과 같은 코드를 만듭니다.

    Configuration GetDllConfiguration(Assembly targetAsm) {
      var configFile = targetAsm.Location + ".config";
      var map = new ExeConfigurationFileMap {
        ExeConfigFilename = configFile
      };
      return ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None);
    }
    

다른 팁

1- Visual Studio에서 App.Config 파일을 엽니 다

2- "구성"태그에서 태그 "AppSettings"에 구성을 추가하여 다음과 같이 구성합니다.

<configuration>
    <appSettings>
        <add key="UserName" value="aaa"/>
        <add key="Password" value="111"/>
    </appSettings>
</configuration>

3- 코드에서 C#

var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location);
string userName = appConfig.AppSettings.Settings["UserName"].Value;
string password = appConfig.AppSettings.Settings["Password"].Value;

"ConfigurationManager"및 "Assembly"에 대한이 두 가지 결과를 추가하는 것을 잊지 마십시오.

  • System.configuration 사용;
  • 시스템 사용; 반사;

System.configuration이 표시되지 않으면 참조에 "System.Configuration"을 추가해야합니다.

4- DLL의 구성을 벨로우로 업데이트 할 수 있습니다.

  • 파일 열기 ""myproj.dll.config"
  • 그런 다음 구성을 업데이트하십시오
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top