4

나는 현재 작성중인 WPF 응용 프로그램이 있습니다. Visual Studio Community 2015를 사용하고 있습니다. "진정한"릴리스 빌드를 만들기 위해 일부 빌드 설정을 변경하여 사용자 컴퓨터에 필요한 파일 만 생성합니다. 그래서 vshost exe, 생성 된 XML 파일, 기타 등등 (나는 PDB 파일 생성을 유지하고있다.).app.config 파일을 출력 디렉토리에 복사하지 않는 방법

나는 하나의 파일을 제외하고 내가 원하는 모든 것을 가지고있다. 각 프로젝트에 App.config 파일이 있습니다. 내 디버그 빌드 출력 디렉터리에 복사 점점이 상관 없어,하지만 내 "사실"릴리스 빌드 거기에 싶지 않아.

파일이 이미 해당 속성에 "복사 안 함"으로 설정되어 있습니다. 아래 이미지를 참조하십시오 :

App.config image

가 있더라도 설정을 "복사하지 마십시오"그러나 나는 여전히 "MyAppName.exe.config"파일이 내가 프로젝트를 구축 매번 생성 얻을. 이게 왜 그렇게? 어떻게 끌 수 있습니까? 그것은 꽤 성가신 일입니다.

어떤 조언을 해주셔서 감사합니다!

+0

필요하지 않은 경우 프로젝트에서 제거하십시오. – Clemens

+0

고마워요,하지만 그 질문에는 정말로 대답하지 않습니다. 일시적으로, 릴리스 빌드의 출력 디렉토리에서 파일을 삭제하는 빌드 후 단계를 사용하여이 문제를 해결하고 있습니다. – David

+0

정확히 두 가지 옵션이 있습니다. 응용 프로그램에서 파일을 필요로하거나 출력 폴더에 복사해야합니다. 또는 애플리케이션에 필요하지 않은 경우 프로젝트에 포함하면 안됩니다. 나중에 언제든지 다시 만들 수 있습니다. – Clemens

답변

6
의 app.config의 처리는 특별한

, 그것은 이름하여 을 처리,이 순서 다음 app.config 파일을 선택합니다 빌드 프로세스 :

  • 이 (appconfig가)를 값 $를 선택 설정 주요 프로젝트
  • 프로젝트와 동일한 폴더에서 @ (없음) App.Config를 선택하십시오.
  • 프로젝트와 동일한 폴더에서 @ (Content) App.Config를 선택하십시오.
  • 프로젝트의 하위 폴더에서 @ (없음) App.Config를 선택하십시오.
  • 프로젝트의 하위 폴더에서 @ (내용) App.Config를 선택하십시오.

$ (appconfig가)이 비어 있으면 일치가 있다면, 그것은에서 "없음"또는 "내용"은 MSBuild 항목 그룹에 이름 "의 app.config"를 가진 파일을 찾을 것이다, MSBuild를 속성입니다 파일이 사용되며 app.config 이름을 [AssemblyName]으로 대체하는 출력 디렉토리에 복사됩니다 .config

파일을 삭제하지 않고 유지하려면 "Build Action "속성을"None "또는"Content "와 다른 무언가로 변경하려면 목록의 기존 값 ("AdditionalFiles "제안)이나 사용할 값 (예 :"MyConfigFile ")을 사용할 수 있습니다. 프로젝트 내부에는 있지만 출력 디렉토리에 구성 파일을 생성하는 논리는 없습니다.

또는 파일 이름을 "app.config"와 다른 이름으로 바꿀 수 있으며 "빌드 작업"및 "출력 디렉터리로 복사"에 대한 현재 속성 값을 유지할 수 있습니다.

+0

멋진 세부 정보를 설명해 주셔서 감사합니다. 재밌는 사실 : 내 VS2015는 내 프로젝트에 "App1.config"를 추가했습니다. (이름 중독을 인식하지 못했습니다.) 결과 : AssemblyName이 없습니다.config 파일이 생성되었습니다. App1.config의 이름을 App.config로 변경하면 즉시 도움이됩니다. – Nicolas

관련 문제