2014-04-24 1 views
1

DLL 프로젝트 MyLib (즉 출력 유형 클래스 라이브러리)에 NuGet 패키지 참조를 추가하면 패키지 관리자는 때때로 MyLib.dll.config로 빌드 된 app.config (예 : bindingRedirect)를 만듭니다. 예를 들어, Microsoft.Owin 2.1.0이이를 수행합니다.NuGet dll.config 변경 사항을 exe.config에 복사해야합니까?

내 Windows 데스크톱 응용 프로그램이 MyLib.dll을로드하면 MyLib.dll.config의 bindingRedirect가 무시되고 FileLoadException이 발생합니다. 나는 bindRedirect를 EXE 프로젝트의 app.config에 수동으로 복사하면 문제를 해결할 수 있습니다.

NuGet bindingRedirect를 작동시키는 app.config 파일 사이에이 수동 복사 - 붙여 넣기가 실제로 있습니까?

NuGet이 자동으로 종속성을 처리한다고 가정하면 대단히 지루하고 오류가 발생하기 쉽습니다.

답변

0

더 좋은 방법이 있습니다. NuGet 패키지 참조를 추가하기 전에 로컬 프로젝트 참조를 추가해야했습니다.

원래 Microsoft.Owin NuGet 참조를 MyLib에 추가했을 때 MyLib 참조를 MyApp (일명 EXE 프로젝트)에 추가하지 않았습니다. MyApp의 MyLib 참조를 사용하여 Microsoft.Owin NuGet 패키지를 제거한 다음 Microsoft.Owin을 MyLib에 다시 추가했습니다. Bada-bing-bada-boom. bindingRedirect는 자동으로 MyApp의 app.config 파일에 추가되었습니다.새로운 클래스 라이브러리를 만들 때

그래서, 하나는 분명히 새로운 라이브러리에 NuGet 패키지 참조를 추가하기 전에 기존 프로젝트에 새로운 라이브러리 참조를 추가해야합니다.

1

모든 패키지 특정 구성 파일은 해당 패키지와 관련된 구성을 보여줍니다. 당신은 실제 설정 파일에 넣을 수도 있고 원치 않을 수도 있습니다. (EntityFramework 나 log4net이 그것의 좋은 예입니다) 당신의 목적을 위해 tweek해야 할 수도 있습니다. 패키지를 클래스 라이브러리에 설치하는 경우, 설정 파일은 전혀 이해가되지 않습니다. 설정을 적절한 실행 파일 app.config로 옮겨야합니다. 어떻게 자동화 할 수 있습니까?

너겟 전에 어딘가에서 dll을 다운로드 한 다음 필요한 구성을 설정하는 방법에 대한 지침을 따르십시오. 이것은 확실히 개선 된 것입니다.

요약하면 네가 필요하다면 복사해야하며 이해가된다.

2

유일한 방법은 클래스 라이브러리 프로젝트의 app.config 파일은 필연적으로 기본 응용 프로그램의 구성 파일에 복사 할 수있는 샘플 코드입니다. bindingRedirect의 경우

는 - 나는 두 경우에 필요하다고 예상 :

  1. 당신이 MYLIB 어셈블리의 다른 버전을 액세스하는 여러 DLL이있는 경우. 어떤 경우에 사용할 버전을 명시 적으로 결정해야합니다.

  2. 주 응용 프로그램의 어셈블리에 이전 버전의 MyLib 어셈블리를 참조하는 구성 요소가 포함되어있는 경우. 어떤 경우에는 당신이 중 하나를 수행 할 수 있습니다 : 주 구성 파일

  3. 주요 구성 파일
  4. 에 bindingRedirect 추가에

    • 업데이트 버전을 기본 응용 프로그램 프로젝트에 Nuget 패키지를 추가하는 경우 그것은 아마도 당신을 위해 bindingRedirect를 추가 할 것입니다.